| [workspace] | |
| resolver = "2" | |
| members = ["crates/*"] | |
| # the taps are wasm32-wasip2 components with a workspace of their own | |
| exclude = ["taps"] | |
| [workspace.package] | |
| version = "0.1.0" | |
| edition = "2021" | |
| rust-version = "1.96" | |
| license = "Apache-2.0" | |
| repository = "https://github.com/apache/tooling-memory" | |
| [workspace.dependencies] | |
| thiserror = "2" | |
| serde = { version = "1", features = ["derive"] } | |
| tokio = { version = "1", features = ["full"] } | |
| # Every crate opts in with `[lints] workspace = true`. `make check` runs clippy with | |
| # warnings as errors, so each "warn" below is a gate. Thresholds live in clippy.toml. | |
| [workspace.lints.rust] | |
| unsafe_code = "forbid" | |
| missing_docs = "warn" | |
| rust_2018_idioms = { level = "warn", priority = -1 } | |
| [workspace.lints.clippy] | |
| all = { level = "warn", priority = -1 } | |
| # complexity: a function over the thresholds in clippy.toml is split, not allowed | |
| cognitive_complexity = "warn" | |
| too_many_lines = "warn" | |
| # a library that unwraps is a library that panics on someone else's input | |
| unwrap_used = "warn" | |
| # documentation of what can go wrong is part of the public surface | |
| missing_errors_doc = "warn" | |
| missing_panics_doc = "warn" | |
| # left-behind debugging | |
| dbg_macro = "warn" | |
| todo = "warn" | |
| unimplemented = "warn" | |
| # Line tables keep backtraces readable at a fraction of full debug info; the dev target | |
| # directory was 27 GB with full debug info and compiles slower for it. | |
| [profile.dev] | |
| debug = "line-tables-only" | |
| [profile.release] | |
| lto = "thin" |