[workspace]
resolver = "3"
members = ["showbits-assets", "showbits-thermal-printer", "showbits-typst"]

[workspace.package]
version = "0.0.0"
edition = "2024"

[workspace.dependencies]
anyhow = "1.0.96"
axum = "0.8.1"
clap = { version = "4.5.30", features = ["derive", "deprecated"] }
escpos = "0.15.0"
image = "0.25.5"
jiff = "0.2.1"
mime_guess = "2.0.5"
palette = "0.7.6"
rand = "0.9.0"
rust-embed = "8.5.0"
serde = { version = "1.0.218", features = ["derive"] }
showbits-assets.path = "./showbits-assets"
showbits-typst.path = "./showbits-typst"
tokio = "1.43.0"
typst = "0.13.0"
typst-assets = { version = "0.13.0", features = ["fonts"] }
typst-kit = "0.13.0"
typst-render = "0.13.0"

[workspace.lints]
rust.unsafe_code = { level = "forbid", priority = 1 }
# Lint groups
rust.deprecated_safe = "warn"
rust.future_incompatible = "warn"
rust.keyword_idents = "warn"
rust.rust_2018_idioms = "warn"
rust.unused = "warn"
# Individual lints
rust.non_local_definitions = "warn"
rust.redundant_imports = "warn"
rust.redundant_lifetimes = "warn"
rust.single_use_lifetimes = "warn"
rust.unit_bindings = "warn"
rust.unused_crate_dependencies = "warn"
rust.unused_import_braces = "warn"
rust.unused_lifetimes = "warn"
rust.unused_qualifications = "warn"
# Clippy
clippy.use_self = "warn"

# Optimize dependencies in debug mode (mainly for faster image exports).
# Does not apply to workspace members, only "real" dependencies.
# https://doc.rust-lang.org/cargo/reference/profiles.html#overrides
[profile.dev.package."*"]
opt-level = 3
