2025-12-25 11:03:05 -03:00
|
|
|
[workspace]
|
|
|
|
|
resolver = "2"
|
|
|
|
|
members = [
|
|
|
|
|
"botapp",
|
|
|
|
|
"botdevice",
|
|
|
|
|
"botlib",
|
|
|
|
|
"botserver",
|
|
|
|
|
"bottest",
|
|
|
|
|
"botui",
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
[workspace.lints.rust]
|
|
|
|
|
unused_imports = "warn"
|
|
|
|
|
unused_variables = "warn"
|
|
|
|
|
unused_mut = "warn"
|
|
|
|
|
unsafe_code = "deny"
|
|
|
|
|
missing_docs = "allow"
|
|
|
|
|
|
|
|
|
|
[workspace.lints.clippy]
|
|
|
|
|
all = { level = "warn", priority = -1 }
|
|
|
|
|
pedantic = { level = "warn", priority = -1 }
|
|
|
|
|
nursery = { level = "warn", priority = -1 }
|
|
|
|
|
cargo = { level = "warn", priority = -1 }
|
|
|
|
|
panic = "warn"
|
|
|
|
|
todo = "warn"
|
|
|
|
|
# Disabled: has false positives for functions with mut self, heap types (Vec, String)
|
|
|
|
|
missing_const_for_fn = "allow"
|
|
|
|
|
# Disabled: Axum handlers and framework requirements need owned types
|
|
|
|
|
needless_pass_by_value = "allow"
|
|
|
|
|
# Disabled: transitive dependencies we cannot control
|
|
|
|
|
multiple_crate_versions = "allow"
|
|
|
|
|
# Disabled: when async traits require non-Send futures
|
|
|
|
|
future_not_send = "allow"
|
|
|
|
|
# Disabled: intentional similar names for related concepts (e.g. title_bg/title_fg)
|
|
|
|
|
similar_names = "allow"
|
|
|
|
|
# Disabled: doc comments removed per zero-comments policy
|
|
|
|
|
missing_errors_doc = "allow"
|
|
|
|
|
missing_panics_doc = "allow"
|
|
|
|
|
# Disabled: not all public functions need #[must_use]
|
|
|
|
|
must_use_candidate = "allow"
|
|
|
|
|
# Disabled: functions can be long if well-structured
|
|
|
|
|
too_many_lines = "allow"
|
|
|
|
|
# Disabled: complex functions are sometimes necessary
|
|
|
|
|
cognitive_complexity = "allow"
|
|
|
|
|
# Disabled: many arguments needed for complex constructors
|
|
|
|
|
too_many_arguments = "allow"
|
|
|
|
|
# Disabled: module organization is intentional
|
|
|
|
|
module_name_repetitions = "allow"
|
|
|
|
|
# Disabled: struct organization is intentional
|
|
|
|
|
struct_excessive_bools = "allow"
|
|
|
|
|
# Disabled: explicit returns sometimes clearer
|
|
|
|
|
needless_return = "allow"
|
|
|
|
|
# Disabled: if-let vs match is stylistic
|
|
|
|
|
single_match_else = "allow"
|
|
|
|
|
# Disabled: option/result chains are readable
|
|
|
|
|
option_if_let_else = "allow"
|
|
|
|
|
# Disabled: explicit ref patterns sometimes clearer
|
|
|
|
|
redundant_closure_for_method_calls = "allow"
|
|
|
|
|
# Disabled: cast precision loss acceptable in controlled cases
|
|
|
|
|
cast_possible_truncation = "allow"
|
|
|
|
|
cast_sign_loss = "allow"
|
|
|
|
|
cast_precision_loss = "allow"
|
|
|
|
|
cast_possible_wrap = "allow"
|
|
|
|
|
# Disabled: wildcard imports used intentionally
|
|
|
|
|
wildcard_imports = "allow"
|
|
|
|
|
# Disabled: some patterns require manual implementations
|
|
|
|
|
derivable_impls = "allow"
|
|
|
|
|
# Disabled: inline format args style preference
|
|
|
|
|
uninlined_format_args = "allow"
|
|
|
|
|
# Disabled: default trait not always appropriate
|
|
|
|
|
default_trait_access = "allow"
|
|
|
|
|
# Disabled: redundant else can be clearer
|
|
|
|
|
redundant_else = "allow"
|
|
|
|
|
# Disabled: unit patterns in matches intentional
|
|
|
|
|
ignored_unit_patterns = "allow"
|
|
|
|
|
# Disabled: manual string operations sometimes clearer
|
|
|
|
|
manual_string_new = "allow"
|
|
|
|
|
# Disabled: items after statements acceptable
|
|
|
|
|
items_after_statements = "allow"
|
|
|
|
|
# Disabled: clone on copy types sometimes intentional
|
|
|
|
|
clone_on_copy = "allow"
|
|
|
|
|
# Disabled: map_unwrap_or style preference
|
|
|
|
|
map_unwrap_or = "allow"
|
|
|
|
|
# Disabled: unnecessary wraps sometimes for API consistency
|
|
|
|
|
unnecessary_wraps = "allow"
|
|
|
|
|
# Disabled: used underscore binding acceptable
|
|
|
|
|
used_underscore_binding = "allow"
|
|
|
|
|
# Disabled: implicit hasher acceptable
|
|
|
|
|
implicit_hasher = "allow"
|
|
|
|
|
# Disabled: return self not always appropriate
|
|
|
|
|
return_self_not_must_use = "allow"
|
|
|
|
|
# Disabled: ref binding style preference
|
|
|
|
|
ref_binding_to_reference = "allow"
|
|
|
|
|
# Disabled: needless borrow sometimes clearer
|
|
|
|
|
needless_borrow = "allow"
|
|
|
|
|
# Disabled: explicit iter acceptable
|
|
|
|
|
explicit_iter_loop = "allow"
|
|
|
|
|
# Disabled: explicit into iter acceptable
|
|
|
|
|
explicit_into_iter_loop = "allow"
|
2025-12-26 12:29:42 -03:00
|
|
|
# Disabled: false positives with async mutexes that must be held across await points
|
|
|
|
|
significant_drop_tightening = "allow"
|
2025-12-25 11:03:05 -03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
[profile.release]
|
|
|
|
|
lto = true
|
|
|
|
|
opt-level = "z"
|
|
|
|
|
strip = true
|
|
|
|
|
panic = "abort"
|
|
|
|
|
codegen-units = 1
|
|
|
|
|
overflow-checks = true
|
|
|
|
|
|
|
|
|
|
[profile.ci]
|
|
|
|
|
inherits = "release"
|
|
|
|
|
lto = false
|
|
|
|
|
codegen-units = 16
|
|
|
|
|
debug = false
|
|
|
|
|
|
|
|
|
|
[profile.low-memory]
|
|
|
|
|
inherits = "release"
|
|
|
|
|
lto = "thin"
|
|
|
|
|
codegen-units = 16
|
|
|
|
|
debug = false
|
|
|
|
|
incremental = false
|
|
|
|
|
opt-level = "s"
|
|
|
|
|
|
|
|
|
|
[profile.dev]
|
|
|
|
|
debug = 0
|
|
|
|
|
incremental = true
|
|
|
|
|
codegen-units = 256
|
|
|
|
|
opt-level = 0
|