msrv = "1.70.0"
disallowed-types = [
{ path = "std::sync::Mutex", reason = "Use the faster & simpler non-poisonable primitives in `parking_lot` instead" },
{ path = "std::sync::RwLock", reason = "Use the faster & simpler non-poisonable primitives in `parking_lot` instead" },
{ path = "std::sync::Condvar", reason = "Use the faster & simpler non-poisonable primitives in `parking_lot` instead" },
{ path = "std::sync::Once", reason = "Use the faster & simpler non-poisonable primitives in `parking_lot` instead" },
{ path = "std::sync::mpsc::Sender", reason = "Use the non-legacy and faster `crossbeam_channel` crate instead of `std::sync::mpsc`" },
{ path = "std::sync::mpsc::SyncSender", reason = "Use the non-legacy and faster `crossbeam_channel` crate instead of `std::sync::mpsc`" },
{ path = "std::sync::mpsc::Receiver", reason = "Use the non-legacy and faster `crossbeam_channel` crate instead of `std::sync::mpsc`" },
{ path = "std::path::Path", reason = "Use cargo_deny::Path" },
{ path = "std::path::PathBuf", reason = "Use cargo_deny::PathBuf" },
{ path = "std::collections::LinkedList", reason = "LinkedList as a slow and almost never needed" },
{ path = "ring::digest::SHA1_FOR_LEGACY_USE_ONLY", reason = "SHA-1 is cryptographically broken, and we are building new code so should not use it" },
]
disallowed-macros = [
"std::print",
"std::println",
"std::eprint",
"std::eprintln",
"std::dbg",
]