关于 rust-systems
rust-systems 是面向系统编程、命令行工具和性能敏感应用的 Rust 实践技能。52 条规则涵盖项目与模块组织、命名、类型与 trait,以及错误处理。
主要功能
- 01五类共 52 条规则
- 02Cargo workspace 与模块组织
- 03Rust 代码命名约定
- 04类型与 trait 设计模式
- 05错误处理指南
适用场景
- 01组织多 crate 的 Rust 项目
- 02审查 Rust 模块与命名
- 03设计类型、trait 和错误处理
- 04构建系统工具或守护进程
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill rust-systems安装后在 Claude Code 中输入/rust-systems确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
AGENTS.mdREADME.mdmetadata.jsonassets/templates/_template.mdreferences/_sections.mderr-anyhow-context.mderr-bail-validation.mderr-expect-message.mderr-graceful-degradation.mderr-ok-or-else.mderr-panic-unrecoverable.mderr-path-context.mderr-result-alias.mderr-source-attribute.mderr-thiserror-enum.mderr-two-tier-strategy.mdmod-colocated-tests.mdmod-conditional-compilation.mdmod-explicit-declarations.mdmod-reexport-pattern.mdmod-submodule-organization.mdmod-types-errors-files.mdname-boolean-predicates.mdname-constant-screaming.mdname-constructor-new.mdname-conversion-to-from.mdname-field-unit-suffixes.mdname-function-snake-case.mdname-generic-parameters.mdname-getter-prefix.md详细介绍
Rust 系统编程最佳实践
涵盖系统编程的综合 Rust 模式和风格约定,包含 5 个类别中的 52 条规则。适用于系统编程、CLI 工具和性能关键型应用。
适用场景
在以下情况参考这些指南:
- 编写新的 Rust 代码或模块
- 组织 Rust 项目结构
- 定义自定义类型、trait 或错误处理
- 审查 Rust 代码以确保风格一致
- 构建系统工具、CLI 或守护进程
按优先级划分的规则类别
| 优先级 | 类别 | 影响 | 前缀 |
|---|---|---|---|
| 1 | 项目组织 | 高 | org- |
| 2 | 模块结构 | 高 | mod- |
| 3 | 命名约定 | 高 | name- |
| 4 | 类型与 trait 模式 | 高 | type- |
| 5 | 错误处理 | 高 | err- |
快速参考
1. 项目组织(高)
org-cargo-workspace- 多 crate 项目使用 Cargo Workspaceorg-directory-naming- 所有目录名均使用 snake_caseorg-binary-library-separation- 分离二进制 crate 和库 crateorg-feature-domain-grouping- 按功能领域对 crate 分组org-common-crate- 使用专用的 common crate 存放共享实用工具org-flat-crate-structure- 保持 crate 结构扁平
2. 模块结构(高)
mod-explicit-declarations- 在 lib.rs 中使用显式模块声明mod-colocated-tests- 将测试与代码放在一起,使用 test.rs 文件mod-submodule-organization- 多文件模块使用 mod.rsmod-types-errors-files- 将类型和错误分别放入专用文件mod-reexport-pattern- 使用 pub use 实现清晰的 API 重导出mod-conditional-compilation- 使用 cfg 属性实现条件模块
3. 命名约定(高)
name-function-snake-case- 函数和方法使用 snake_casename-type-pascal-case- 类型使用 PascalCasename-constant-screaming- 常量使用 SCREAMING_SNAKE_CASEname-getter-prefix- Getter 函数使用 get_ 前缀name-boolean-predicates- 布尔谓词使用 is_、has_、should_ 前缀name-constructor-new- 构造函数使用 newname-conversion-to-from- 转换使用 to_ 和 from_name-type-suffixes- 类型特化使用描述性后缀name-field-unit-suffixes- 字段名包含单位后缀name-module-snake-case- 模块名使用 snake_casename-generic-parameters- 泛型参数使用描述性名称或单字母名称name-lifetime-parameters- 生命周期参数使用单个小写字母name-test-files- 测试文件命名为 test.rs
4. 类型与 trait 模式(高)
type-option-nullable-fields- 可空字段使用 Optiontype-standard-derives- 数据结构采用一致的 derive 顺序type-builder-pattern- 使用支持方法链式调用的 Builder 模式type-associated-types- 相关类型之间的关系使用关联类型type-phantom-data- 未使用的泛型参数使用 PhantomDatatype-newtype-pattern- 使用 Newtype 模式确保类型安全type-enum-copy-simple- 为简单枚举派生 Copytype-enum-variants- 使用枚举实现类型安全的变体type-trait-impl-grouping- 将相关 trait 实现放在一起type-bitflags- 使用 bitflags! 实现类型安全的位标志type-operator-overload- 为领域类型实现运算符 traittype-public-fields- 数据结构使用公有字段type-async-trait- 异步 trait 方法使用 async_traittype-boxed-trait-objects- 使用 Box 实现运行时多态type-type-aliases- 复杂泛型使用类型别名
5. 错误处理(高)
err-thiserror-enum- 使用 thiserror 定义自定义错误类型err-result-alias- 定义模块本地的 Result 类型别名err-path-context- 在 IO 错误中包含路径上下文err-anyhow-context- 使用 context() 和 with_context() 提供错误消息err-bail-validation- 使用 bail! 处理验证失败err-graceful-degradation- 对非关键操作采用优雅降级err-panic-unrecoverable- 仅在不可恢复的情况下使用 panic!err-expect-message- 使用带有描述性消息的 expect()err-source-attribute- 使用 #[source] 链接错误err-ok-or-else- 对开销较大的错误构造使用 ok_or_elseerr-two-tier-strategy- 使用双层错误策略
如何使用
阅读各个参考文件,了解详细说明和代码示例:
完整合并文档
如需查看包含所有展开规则的完整指南:AGENTS.md
评论
支持 Markdown