[workspace] resolver = "3" members = ["crates/budctl-core", "crates/budctl-cli", "crates/budctl-gui", "crates/budctl-android"] [workspace.package] version = "0.1.3" edition = "2024" rust-version = "1.88" license = "GPL-3.0-or-later" publish = false [workspace.lints.rust] # The exceptions: crates/budctl-core/src/transport/socket.rs (Bluetooth socket syscalls) and the # JNI exports' #[unsafe(no_mangle)] in crates/budctl-android/src/lib.rs. unsafe_code = "deny" [workspace.lints.clippy] # Bluetooth fails in many ways; every failure must become a typed error, never a panic. unwrap_used = "deny" expect_used = "deny" panic = "deny" indexing_slicing = "deny" cast_possible_truncation = "deny" undocumented_unsafe_blocks = "deny" # Debug builds (`cargo run`, the tests): the dependencies optimized, our crates not. Unoptimized, # the GUI's CPU renderer draws a frame about 20 times slower, and the window lags. [profile.dev.package."*"] opt-level = 3 # Release builds: the binaries the install script ships. No debug symbols, and whole-crate # optimization across the dependency tree, for smaller and faster binaries. [profile.release] strip = true lto = "thin"