You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Cargo Clippy忽略Prost生成的Rust文件

让Cargo Clippy忽略Prost生成的Rust文件

初始尝试未生效

用Prost生成Protobuf对应的Rust类后,想让Clippy跳过对这些生成文件的检查,在lib.rs中编写了以下代码:

pub mod modes {
    #[allow(clippy)]
    include!(concat!(env!("OUT_DIR"), "/modes.rs"));
}

#[allow(clippy)]
pub mod vehicle_features {
    include!(concat!(env!("OUT_DIR"), "/vehicle_features.rs"));
}

但Clippy仍会输出生成文件的警告。

修改后仅部分场景有效

调整为模块级别的属性配置后:

pub mod modes {
    #![allow(clippy::all)]
    include!(concat!(env!("OUT_DIR"), "/modes.rs"));
}

pub mod vehicle_features {
    #![allow(clippy::all)]
    include!(concat!(env!("OUT_DIR"), "/vehicle_features.rs"));
}

运行cargo clippy时配置生效,但执行cargo clippy -- -W unwrap_used时,生成文件的警告依然会出现。

问题原因及最终解决方案

clippy::all并非覆盖所有Clippy规则,它仅包含correctness、suspicious、style、complexity、cargo和perf类别下的规则,不包含pedantic或nursery类别规则。

要让所有场景下Clippy都忽略生成文件,需要在模块内添加对这两个类别的允许规则:

pub mod modes {
    #![allow(clippy::all, clippy::pedantic, clippy::nursery)]
    include!(concat!(env!("OUT_DIR"), "/modes.rs"));
}

pub mod vehicle_features {
    #![allow(clippy::all, clippy::pedantic, clippy::nursery)]
    include!(concat!(env!("OUT_DIR"), "/vehicle_features.rs"));
}

内容的提问来源于stack exchange,提问作者Connor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 07:55:38