[package]
name = "fbtoggl"
version = "2025.12.2"
edition = "2024"
authors = ["Stefan Ruzitschka <stefan@icepuma.dev>"]
description = "Terminal client to interact with track.toggl.com REST api."
keywords = ["toggl", "track", "time-tracking", "cli", "productivity"]
repository = "https://github.com/icepuma/fbtoggl"
readme = "README.md"
license-file = "LICENSE"

[lints.clippy]
# Enable all pedantic lints
pedantic = { level = "warn", priority = -1 }
nursery = { level = "warn", priority = -1 }
cargo = { level = "warn", priority = -1 }

# Additional restriction lints
unwrap_used = "warn"
expect_used = "warn"
panic = "warn"
missing_errors_doc = "warn"
missing_panics_doc = "warn"
allow_attributes_without_reason = "warn"
arithmetic_side_effects = "warn"
as_conversions = "warn"
integer_division = "warn"
modulo_arithmetic = "warn"
std_instead_of_alloc = "warn"
std_instead_of_core = "warn"
str_to_string = "warn"
implicit_clone = "warn"

# Correctness
correctness = { level = "deny", priority = -1 }

# Suspicious
suspicious = { level = "warn", priority = -1 }

# Style
style = { level = "warn", priority = -1 }

# Complexity
complexity = { level = "warn", priority = -1 }

# Perf
perf = { level = "warn", priority = -1 }

# Specific lints to deny
indexing_slicing = "deny"
unwrap_in_result = "deny"

# Allow some lints that are too restrictive for a CLI app
missing_docs_in_private_items = "allow"
multiple_crate_versions = "allow"  # Dependencies may pull in different versions
cargo_common_metadata = "allow"  # We have the important metadata already

[dependencies]
base64 = "0.22.1"
minreq = { version = "2.14.1", features = [
    "https-rustls-probe",
    "json-using-serde",
    "urlencoding",
] }
clap = { version = "4.5.53", features = [
    "deprecated",
    "derive",
    "suggestions",
    "color",
    "env",
    "unicode",
    "wrap_help",
] }
clap_complete = "4.5.61"
anyhow = "1.0.100"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.145"
chrono = { version = "0.4.42", features = ["serde", "clock"] }
chronoutil = "0.2.7"
now = "0.1.3"
xdg = "3.0.0"
config = "0.15.19"
toml = "0.9.8"
dialoguer = "0.12.0"
urlencoding = "2.1.3"
jackdauer = "0.1.2"
term-table = "1.4.0"
colored = "3.0.0"
hhmmss = "0.1.0"
itertools = "0.14.0"
htp = "0.4.2"
humantime = "2.3.0"
url = "2.5.7"

[dev-dependencies]
env_logger = "0.11.8"
ctor = "0.6.1"
pretty_assertions = "1.4.1"
mockito = "1.7.1"

[profile.release]
lto = true
strip = true
opt-level = "z"
codegen-units = 1
