关于 rust-clap
rust-clap 是使用 clap 设计和测试 Rust 命令行应用的参考技能。其按优先级组织的规则涵盖参数解析、命令结构、帮助信息、错误处理和测试。
主要功能
- 01八类共 42 条规则
- 02类型驱动的 CLI 设计指导
- 03参数配置与输入验证模式
- 04子命令和帮助文本指导
- 05错误处理与测试实践
适用场景
- 01设计新的 Rust 命令行应用
- 02添加参数或子命令
- 03验证命令行输入
- 04编写 CLI 集成测试
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill rust-clap安装后在 Claude Code 中输入/rust-clap确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
metadata.jsonassets/templates/_template.mdreferences/_sections.mdarg-conflicts-with.mdarg-default-value.mdarg-env-fallback.mdarg-requires.mdarg-short-long.mdarg-value-name.mdderive-args-reusable.mdderive-command-metadata.mdderive-doc-comments.mdderive-global-options.mdderive-parser-entry.mdderive-propagate-version.mdderive-subcommand-enum.mderror-color-styles.mderror-context.mderror-exit-codes.mderror-suggestions.mdhelp-after-help.mdhelp-hide-options.mdhelp-next-heading.mdhelp-shell-completions.mdsubcmd-arg-groups.mdsubcmd-args-struct.mdsubcmd-external.mdsubcmd-nested-hierarchy.mdsubcmd-required-help.mdtest-assert-cmd.md详细介绍
Rust Clap 最佳实践
使用 clap 构建 Rust 命令行应用的全面最佳实践指南。包含 8 个类别中的 42 条规则,并按影响排序,为命令行应用设计、参数解析和测试提供指导。
适用场景
请在以下场景中参考这些指南:
- 设计新的 Rust 命令行应用
- 为现有命令行应用添加参数或子命令
- 验证和解析命令行输入
- 为命令行工具编写集成测试
- 改进帮助文本和用户体验
按优先级划分的规则类别
| 优先级 | 类别 | 影响 | 前缀 |
|---|---|---|---|
| 1 | 类型驱动设计 | 关键 | type- |
| 2 | Derive API 模式 | 关键 | derive- |
| 3 | 参数配置 | 高 | arg- |
| 4 | 验证与解析 | 高 | valid- |
| 5 | 子命令架构 | 中高 | subcmd- |
| 6 | 帮助与文档 | 中 | help- |
| 7 | 错误处理 | 中 | error- |
| 8 | 测试模式 | 中低 | test- |
快速参考
1. 类型驱动设计(关键)
type-valueenum-enums- 使用 ValueEnum 表示枚举参数type-option-optional- 对真正可选的参数使用 Optiontype-pathbuf-files- 对文件系统参数使用 PathBuftype-vec-multiple- 对包含多个值的参数使用 Vectype-newtype-semantic- 使用新类型区分不同语义type-bool-flags- 对简单标志使用 bool
2. Derive API 模式(关键)
derive-parser-entry- 为命令行入口派生 Parserderive-command-metadata- 使用 Command 属性提供元数据derive-subcommand-enum- 使用 Subcommand 派生宏构建命令层级derive-args-reusable- 派生 Args 以创建可复用的参数组derive-doc-comments- 使用文档注释编写帮助文本derive-global-options- 使用 Global 设置跨子命令选项derive-propagate-version- 将版本信息传递给子命令
3. 参数配置(高)
arg-default-value- 使用 default_value 设置合理的默认值arg-env-fallback- 使用 env 设置环境变量回退值arg-short-long- 同时提供短选项名和长选项名arg-conflicts-with- 使用 conflicts_with 设置互斥选项arg-requires- 使用 requires 设置依赖参数arg-value-name- 使用 value_name 设置描述性占位符
4. 验证与解析(高)
valid-value-parser- 使用 value_parser 进行自定义验证valid-possible-values- 使用 PossibleValuesParser 限制字符串取值valid-fromstr-types- 为领域类型实现 FromStrvalid-try-parse- 使用 try_parse 优雅地处理错误valid-num-args- 使用 num_args 限制值的数量
5. 子命令架构(中高)
subcmd-nested-hierarchy- 为复杂的 CLI 使用嵌套子命令subcmd-args-struct- 使用结构体定义子命令参数subcmd-required-help- 要求提供子命令,否则显示帮助subcmd-arg-groups- 使用 ArgGroup 实现多选一要求subcmd-external- 使用外部子命令构建插件系统
6. 帮助与文档(中)
help-shell-completions- 使用 clap_complete 生成 Shell 补全help-next-heading- 使用 next_help_heading 组织帮助信息help-after-help- 使用 after_help 提供示例和上下文help-hide-options- 在默认帮助信息中隐藏高级选项
7. 错误处理(中)
error-exit-codes- 使用恰当的退出代码error-context- 为错误消息添加上下文error-suggestions- 启用拼写错误建议error-color-styles- 使用彩色输出让错误更醒目
8. 测试模式(低至中)
test-assert-cmd- 使用 assert_cmd 进行集成测试test-predicates- 使用 predicates 灵活地进行断言test-temp-files- 使用 assert_fs 创建临时测试文件test-parse-from- 使用 parse_from 对解析器进行单元测试test-trycmd-snapshots- 使用 trycmd 进行快照测试
使用方法
阅读各参考文件,了解详细说明和代码示例:
参考文件
| 文件 | 描述 |
|---|---|
| references/_sections.md | 类别定义和排序 |
| assets/templates/_template.md | 新规则模板 |
| metadata.json | 版本和参考信息 |
评论
支持 Markdown