如何拒绝/禁止使用某些外部功能



我有一个多人参与的rust项目。我们使用的外部crate定义了一些有问题的函数,这是许多混乱和错误的根源。我想完全否认/禁止在编译时使用这些函数。有什么办法可以做到吗?

您可以使用disallowed_methodClippy lint来完成此操作。(还有disallowed_type类型。)

例如,禁用Box::new:

#![deny(clippy::disallowed_method)]
fn main() {
let my_box = Box::new(123);
}

将此添加到工作空间根目录中的clippy.toml:

disallowed-methods = [
# fully qualified function/method name:
"std::boxed::Box::new",
]

当你运行cargo clippy时,你会得到一个关于禁用函数使用的错误:

error: use of a disallowed method `alloc::boxed::Box::new`
--> src/main.rs:4:16
|
4 |   let my_box = Box::new(123);
|                ^^^^^^^^^^^^^
|

最新更新