[package] name = "servicepoint" version = "0.16.0" publish = true edition = "2021" license = "GPL-3.0-or-later" description = "A rust library for the CCCB Service Point Display." homepage = "https://docs.rs/crate/servicepoint" repository = "https://git.berlin.ccc.de/servicepoint/servicepoint" readme = "README.md" keywords = ["cccb", "cccb-servicepoint"] rust-version = "1.70.0" [lib] crate-type = ["rlib"] [dependencies] log = "0.4" bitvec = "1.0" flate2 = { version = "1.0", optional = true } bzip2 = { version = "0.5", optional = true } zstd = { version = "0.13", optional = true } rust-lzma = { version = "0.6", optional = true } rand = { version = "0.9", optional = true } once_cell = { version = "1.20", optional = true } thiserror = "2.0" [features] default = ["compression_lzma", "cp437"] compression_zlib = ["dep:flate2"] compression_bzip2 = ["dep:bzip2"] compression_lzma = ["dep:rust-lzma"] compression_zstd = ["dep:zstd"] all_compressions = ["compression_zlib", "compression_bzip2", "compression_lzma", "compression_zstd"] rand = ["dep:rand"] cp437 = ["dep:once_cell"] [[example]] name = "random_brightness" required-features = ["rand"] [[example]] name = "game_of_life" required-features = ["rand"] [[example]] name = "own_command" required-features = ["rand"] [dev-dependencies] # for examples clap = { version = "4.5", features = ["derive"] } [lints.rust] missing-docs = "warn" deprecated-safe = "warn" future-incompatible = "warn" keyword-idents = "warn" let-underscore = "warn" nonstandard-style = "warn" refining_impl_trait_reachable = "warn" rust-2024-compatibility = "warn" [lints.clippy] ## Categories complexity = {level = "warn", priority = -1 } perf = {level = "warn", priority = -1 } style = {level = "warn", priority = -1 } pedantic = {level = "warn", priority = -1 } ## Blacklist unwrap_used = "warn" expect_used = "warn" panic = "warn" incompatible_msrv = "forbid" allow_attributes_without_reason = "warn" ## Whitelist # Too many false positives as often a module only contains one struct that is re-exported at top-level module_name_repetitions = "allow" # The pretty detailed exception types should be enough for now missing_errors_doc = "allow" # The few places where a panic is triggered in code are inspected and should never panic missing_panics_doc = "allow" # Does not work for all types, but should probably be fixed at some point iter_without_into_iter = "allow" [lints.rustdoc] private_doc_tests = "warn" unescaped_backticks = "warn" [package.metadata.docs.rs] all-features = true [profile.size-optimized] inherits = "release" opt-level = 'z' # Optimize for size lto = true # Enable link-time optimization codegen-units = 1 # Reduce number of codegen units to increase optimizations panic = 'abort' # Abort on panic strip = true # Strip symbols from binary