用途:该技能用于处理 Rust 项目相关工作时参考,涉及 Cargo.toml、rustc、cargo build/test/run、clippy、rustfmt 以及 Rust 语言惯用法。
主要能力: 一、语言与类型系统。涵盖所有权与借用(每个值只有一个所有者,默认移动语义,显式 Clone;&T 可多次共享借用,&mut T 只允许一个可变借用,且与 &T 互斥)、生命周期省略与显式标注、'static。 二、错误处理。可恢复错误用 Result<T, E> 与 ? 提前返回,配合 map、and_then、unwrap_or、unwrap_or_else;只在不可恢复的编程错误时使用 panic;可用 thiserror 或 anyhow 定义自定义错误,资料提到 thiserror 2.0+。 三、常用模式。builder 流畅构造、newtype 类型安全包装、type state 编译期状态约束、derive 自动实现常见 trait。 四、信任边界类型。对来自配置、外部进程、网络、shell 的未校验数据,用已校验 newtype 替代裸 String/HashMap,只提供可失败构造器,不实现无失败的 From;让 schema 与运行时校验共用同一常量;直接构造路径的校验需与 serde 校验一致;下游 API 要求 &ValidatedName 而非 &str;区分语义不同的字符串类型;先拒绝非 UTF-8 再构造执行句柄;面向输出的映射用 BTreeMap 保证顺序确定;加载器不应静默跳过损坏文件,需带路径传播错误。 五、trait 与枚举派发。对编译期已知的封闭实现集合,用 trait 加 #[enum_dispatch] 枚举实现零成本静态派发,避免 Box<dyn Trait>;新增实现需新建模块、添加枚举变体、接通构造与选择逻辑。 六、Edition 2024 特性。async 闭包、impl Trait 默认捕获作用域内生命周期、#[diagnostic::do_not_recommend]、if let 临时值作用域变化、let chains;trait 中的 async fn 自 Rust 1.75 稳定。 七、反模式。库代码使用 unwrap、滥用 clone、用 String 表达所有领域值、默认 Arc<Mutex<T>>。
使用方式:项目结构包含 Cargo.toml 的包、依赖、特性开关与 profile 优化配置,root Cargo.toml 与成员继承的 workspace 配置;Lint 可写在 Cargo.toml 的 [lints.clippy] 或 clippy.toml;格式化配置写在 rustfmt.toml;测试可用 cargo nextest run 及 .config/nextest.toml。资料还列出安全漏洞扫描、依赖许可证与安全检查、过期依赖检查、文件变更自动重建、宏展开调试、供应链审计、变异测试等工具方向,但未给出具体命令与名称。
限制:资料提到 release profile 下 debug_assert! 等会被编译剔除,打包流水线常以 --release 且无网络构建,需注意测试门控;技能未提供具体安装命令、收费、平台与效果信息。