# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.85"
name = "sure-client-rs"
version = "0.2.0"
authors = ["Josiah Bull <josiah.bull7@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A non-official Rust client library for the Akahu API, providing access to financial data aggregation services in New Zealand"
homepage = "https://github.com/josiahbull/sure-client-rs"
documentation = "https://docs.rs/sure-client-rs"
readme = "README.md"
keywords = [
    "banking",
    "finance",
    "api",
]
categories = [
    "api-bindings",
    "web-programming::http-client",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/josiahbull/sure-client-rs"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[features]
default = ["strict"]
strict = []

[lib]
name = "sure_client_rs"
path = "src/lib.rs"

[[example]]
name = "accounts"
path = "examples/accounts.rs"

[[example]]
name = "auth"
path = "examples/auth.rs"

[[example]]
name = "categories"
path = "examples/categories.rs"

[[example]]
name = "merchants"
path = "examples/merchants.rs"

[[example]]
name = "transactions"
path = "examples/transactions.rs"

[[test]]
name = "integration_accounts"
path = "tests/integration_accounts.rs"

[[test]]
name = "integration_categories"
path = "tests/integration_categories.rs"

[[test]]
name = "integration_merchants"
path = "tests/integration_merchants.rs"

[[test]]
name = "integration_other"
path = "tests/integration_other.rs"

[[test]]
name = "integration_transactions"
path = "tests/integration_transactions.rs"

[dependencies.bon]
version = "3.8.2"

[dependencies.chrono]
version = "0.4"
features = [
    "serde",
    "alloc",
    "std",
    "clock",
]
default-features = false

[dependencies.iso_currency]
version = "0.5"
features = ["with-serde"]
default-features = false

[dependencies.reqwest]
version = "0.13"
features = [
    "json",
    "rustls",
]
default-features = false

[dependencies.rust_decimal]
version = "1"
features = [
    "std",
    "serde",
    "serde-arbitrary-precision",
]
default-features = false

[dependencies.serde]
version = "1"
features = ["derive"]
default-features = false

[dependencies.serde_json]
version = "1"
features = ["std"]
default-features = false

[dependencies.thiserror]
version = "2"

[dependencies.tokio]
version = "1"
features = [
    "macros",
    "rt-multi-thread",
]
default-features = false

[dependencies.url]
version = "2"
features = ["serde"]
default-features = false

[dependencies.uuid]
version = "1.19.0"
features = [
    "serde",
    "v4",
]
default-features = false

[dev-dependencies.anyhow]
version = "1"
features = ["std"]
default-features = false

[dev-dependencies.clap]
version = "4"
features = [
    "derive",
    "env",
    "std",
    "help",
    "usage",
    "error-context",
]
default-features = false

[dev-dependencies.dotenvy]
version = "0.15"

[lints.clippy]
allow_attributes_without_reason = "deny"
arithmetic_side_effects = "deny"
as_underscore = "deny"
assertions_on_result_states = "warn"
branches_sharing_code = "warn"
cast_lossless = "deny"
checked_conversions = "deny"
clear_with_drain = "warn"
clone_on_ref_ptr = "warn"
cloned_instead_of_copied = "warn"
collection_is_never_read = "warn"
create_dir = "warn"
dbg_macro = "warn"
debug_assert_with_mut_call = "deny"
default_constructed_unit_structs = "allow"
default_numeric_fallback = "allow"
default_union_representation = "deny"
deref_by_slicing = "warn"
derive_partial_eq_without_eq = "warn"
else_if_without_else = "warn"
empty_drop = "warn"
empty_line_after_doc_comments = "warn"
empty_line_after_outer_attr = "warn"
empty_structs_with_brackets = "warn"
enum_glob_use = "warn"
error_impl_error = "warn"
exit = "warn"
expect_used = "allow"
fallible_impl_from = "deny"
filetype_is_file = "deny"
float_cmp_const = "warn"
fn_params_excessive_bools = "warn"
fn_to_numeric_cast_any = "warn"
format_push_string = "warn"
from_iter_instead_of_collect = "warn"
get_first = "allow"
if_then_some_else_none = "warn"
impl_trait_in_params = "warn"
implicit_clone = "warn"
inconsistent_struct_constructor = "warn"
indexing_slicing = "deny"
invalid_upcast_comparisons = "deny"
iter_not_returning_iterator = "warn"
iter_on_empty_collections = "warn"
iter_on_single_items = "warn"
iter_with_drain = "warn"
large_include_file = "warn"
large_stack_frames = "warn"
let_underscore_must_use = "warn"
lossy_float_literal = "deny"
macro_use_imports = "warn"
manual_string_new = "warn"
mismatching_type_param_order = "warn"
missing_assert_message = "warn"
missing_const_for_fn = "warn"
mixed_read_write_in_expression = "warn"
mut_mut = "warn"
needless_collect = "warn"
needless_pass_by_ref_mut = "warn"
needless_raw_string_hashes = "warn"
needless_raw_strings = "warn"
negative_feature_names = "warn"
nonstandard_macro_braces = "warn"
or_fun_call = "warn"
path_buf_push_overwrite = "warn"
ptr_as_ptr = "deny"
ptr_cast_constness = "deny"
pub_without_shorthand = "warn"
rc_mutex = "warn"
read_zero_byte_vec = "warn"
readonly_write_lock = "warn"
redundant_clone = "warn"
redundant_feature_names = "warn"
redundant_pub_crate = "warn"
rest_pat_in_fully_bound_structs = "warn"
same_name_method = "warn"
self_named_module_files = "warn"
semicolon_if_nothing_returned = "warn"
semicolon_inside_block = "warn"
should_panic_without_expect = "warn"
significant_drop_in_scrutinee = "deny"
significant_drop_tightening = "warn"
string_add = "warn"
string_add_assign = "warn"
string_lit_chars_any = "warn"
string_slice = "deny"
suboptimal_flops = "warn"
tests_outside_test_module = "warn"
too_many_arguments = "allow"
trait_duplication_in_bounds = "warn"
transmute_ptr_to_ptr = "deny"
trivially_copy_pass_by_ref = "warn"
try_err = "warn"
tuple_array_conversions = "warn"
type_complexity = "allow"
type_repetition_in_bounds = "warn"
unchecked_time_subtraction = "deny"
undocumented_unsafe_blocks = "deny"
unicode_not_nfc = "warn"
unnecessary_box_returns = "warn"
unnecessary_self_imports = "warn"
unnecessary_struct_initialization = "warn"
unneeded_field_pattern = "allow"
unnested_or_patterns = "warn"
unreadable_literal = "warn"
unsafe_derive_deserialize = "deny"
unseparated_literal_suffix = "warn"
unused_async = "warn"
unused_peekable = "warn"
unused_rounding = "warn"
unused_self = "warn"
unwrap_used = "warn"
use_self = "warn"
used_underscore_binding = "warn"
useless_let_if_seq = "warn"
verbose_bit_mask = "warn"
verbose_file_reads = "warn"
wildcard_dependencies = "deny"
wildcard_enum_match_arm = "deny"
zero_sized_map_values = "warn"
