Agent skill · software engineering · affaan-m

rust-patterns

地道的Rust模式、所有权、错误处理、特质、并发,以及构建安全、高性能应用程序的最佳实践。

Why this skill is useful

Provides domain-specific Rust patterns and best practices that enhance the AI's ability to generate idiomatic Rust code.

What it needs

About 6k tokens when loaded. Last updated 2026-08-06. 238,342 stars on the source repository.

What this skill does

Rust 开发模式 构建安全、高性能且可维护应用程序的惯用 Rust 模式和最佳实践。 何时使用 编写新的 Rust 代码时 评审 Rust 代码时 重构现有 Rust 代码时 设计 crate 结构和模块布局时 工作原理 此技能在六个关键领域强制执行惯用的 Rust 约定:所有权和借用,用于在编译时防止数据竞争;Result/? 错误传播,库使用 thiserror 而应用程序使用 anyhow;枚举和穷尽模式匹配,使非法状态无法表示;用于零成本抽象的 trait 和泛型;通过 Arc<Mutex<T>>、通道和 async/await 实现的安全并发;以及按领域组织的最小化 pub 接口。 核心原则 1. 所有权和借用 Rust 的所有权系统在编译时防止数据竞争和内存错误。 使用 Cow 实现灵活的所有权 错误处理 使用 Result 和 ? —— 切勿在生产环境中使用 unwrap() 库错误使用 thiserror,应用程序错误使用 anyhow 优先使用 Option 组合子而非嵌套匹配 枚举和模式匹配 将状态建模为枚举 穷尽匹配 —— 业务逻辑中不使用通配符 Trait 和泛型 接受泛型,返回具体类型 使用 Trait 对象进行动态分发 使用 Newtype 模式确保类型安全 结构体和数据建模 使用构建器模式进行复杂构造 迭代器和闭包 优先使用迭代器链而非手动循环 使用带有类型注解的 collect() 并发 使用 Arc<Mutex<T>> 处理共享可变状态 使用通道进行消息传递 使用 Tokio 进行异步编程 不安全代码 何时可以使用 Unsafe 何时不可以使用 Unsafe 模块系统和 Crate 结构 按领域组织,而非按类型 可见性 —— 最小化暴露 工具集成 基本命令 快速参考:Rust 惯用法 惯用法 描述 ------- ------------- 借用,而非克隆 传递 &T,除非需要所有权,否则不要克隆 使非法状态无法表示 使用枚举仅对有效状态进行建模 ? 优于 unwrap() 传播错误,切勿在库/生产代码中恐慌 解析,而非验证 在边界处将非结构化数据转换为类型化结构体 Newtype 用于类型安全 将基本类型包装在 newtype 中以防止参数错位 优先使用迭代器而非循环 声明式链更清晰且通常更快 对 Result 使用 #[mustuse] 确保调用者处理返回值 使用 Cow 实现灵活的所有权 当借用足够时避免分配 穷尽匹配 业务关键枚举不使用通配符 最小化 pub 接口 内部 API 使用 pub(crate) 应避免的反模式 请记住:如果它能编译,那它很可能是正确的 —— 但前提是你要避免 unwrap(),最小化 unsafe,并让类型系统为你工作。

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills affaan-m/rust-patterns--33ced2

View the source on GitHub

Browse the @skills marketplace