[package]
name = "amber-api"
description = "Rust client for Amber Electric's API"
license = "MIT"
readme = "README.md"
version = "2.1.0"
categories = ["api-bindings"]
keywords = ["amber", "amber-electric", "api"]
authors = ["JP-Ellis <josh@jpellis.me>"]
repository = "https://github.com/JP-Ellis/amber-api"
edition = "2024"
[dependencies]
bon = { version = "3", default-features = false, features = ["alloc"] }
jiff = { version = "0.2", default-features = false, features = [
"alloc",
"perf-inline",
"serde",
] }
reqwest = { version = "0.13", default-features = false, features = [
"json",
"query",
"rustls",
], optional = true }
serde = { version = "1", default-features = false, features = [
"alloc",
"derive",
] }
thiserror = { version = "2", default-features = false }
tokio = { version = "1", default-features = false, features = ["time"], optional = true }
tracing = { version = "0.1", default-features = false, features = [
"attributes",
"log",
] }
[dev-dependencies]
anyhow = "=1.0.101"
insta = "=1.46.3"
jiff = { version = "=0.2.20", default-features = false, features = [
"alloc",
"perf-inline",
"serde",
"std",
] }
pretty_assertions = "=1.4.1"
rstest = "=0.26.1"
serde_json = "=1.0.149"
tokio = { version = "=1.49.0", features = ["macros", "rt-multi-thread"] }
[features]
default = ["std"]
std = ["reqwest", "thiserror/std", "tokio"]
[[example]]
name = "current_prices"
required-features = ["std"]
[[example]]
name = "current_prices_complete"
required-features = ["std"]
[[example]]
name = "get_sites"
required-features = ["std"]
[[example]]
name = "prices"
required-features = ["std"]
[[example]]
name = "renewables"
required-features = ["std"]
[[example]]
name = "renewables_complete"
required-features = ["std"]
[[example]]
name = "renewables_with_resolution"
required-features = ["std"]
[[example]]
name = "usage"
required-features = ["std"]
[lints]
[lints.rust]
future-incompatible = "warn"
missing_docs = "warn"
warnings = "warn"
[lints.clippy]
cargo = { level = "warn", priority = -1 }
complexity = { level = "warn", priority = -1 }
correctness = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
perf = { level = "warn", priority = -1 }
restriction = { level = "warn", priority = -1 }
style = { level = "warn", priority = -1 }
suspicious = { level = "warn", priority = -1 }
blanket-clippy-restriction-lints = "allow"
arbitrary_source_item_ordering = "allow"
cognitive_complexity = "allow"
else_if_without_else = "allow"
impl_trait_in_params = "allow"
implicit_return = "allow"
min_ident_chars = "allow"
missing_trait_methods = "allow"
pattern_type_mismatch = "allow"
pub_with_shorthand = "allow"
question_mark_used = "allow"
ref_patterns = "allow"
self_named_module_files = "allow"
separated_literal_suffix = "allow"
single_call_fn = "allow"
single_char_lifetime_names = "allow"
unreachable = "allow"
return_and_then = "allow"
panic_in_result_fn = "allow"
empty_structs_with_brackets = "allow"
[lints.rustdoc]
missing-crate-level-docs = "warn"