allowed-duplicate-crates = [
"dirs",
"dirs-sys",
"getrandom",
"redox_users",
"regex-automata",
"regex-syntax",
"thiserror",
"thiserror-impl",
"unicode-width",
"wasi",
"windows-sys",
"windows-targets",
"windows_aarch64_gnullvm",
"windows_aarch64_msvc",
"windows_i686_gnu",
"windows_i686_msvc",
"windows_x86_64_gnu",
"windows_x86_64_gnullvm",
"windows_x86_64_msvc",
]
allow-unwrap-in-tests = true
allow-expect-in-tests = true
too-many-lines-threshold = 200
disallowed-macros = [
{ path = "log::log", reason = "use tracing crate instead" },
{ path = "log::error", reason = "use tracing::error!() instead" },
{ path = "log::warn", reason = "use tracing::warn!() instead" },
{ path = "log::info", reason = "use tracing::info!() instead" },
{ path = "log::debug", reason = "use tracing::debug!() instead" },
{ path = "log::trace", reason = "use tracing::trace!() instead" },
{ path = "core::assert_eq", reason = "See the `ensure_eq` function in tests/testutils/src/lib.rs for reasoning and replacement." },
{ path = "core::assert", reason = "Use ensure to ensure we return a result and destructors run." },
]
disallowed-methods = [
{ path = "duct::Expression::run", reason = "See the `.run_with()` function in src/exec.rs for reasoning and replacement." },
{ path = "assert_cmd::assert::Assert::success", reason = "See the `.eprint_stdout_stderr()` function in tests/testutils/src/lib.rs for reasoning and replacement." },
{ path = "assert_cmd::assert::Assert::stderr", reason = "See the `.eprint_stdout_stderr()` function in tests/testutils/src/lib.rs for reasoning and replacement." },
{ path = "assert_cmd::assert::Assert::stdout", reason = "See the `.eprint_stdout_stderr()` function in tests/testutils/src/lib.rs for reasoning and replacement." },
]
doc-valid-idents = [".."]