rust-expert-best-practices-code-review
56
总安装量
56
周安装量
#3904
全站排名
安装命令
npx skills add https://github.com/wispbit-ai/skills --skill rust-expert-best-practices-code-review
Agent 安装分布
cursor
55
amp
1
opencode
1
kimi-cli
1
codex
1
github-copilot
1
Skill 文档
Rust Expert Best Practices
Simple, pragmatic, opinionated. Only what matters for writing production-grade Rust code.
When to Apply
Reference these guidelines when:
- Writing Rust code (structs, functions, enums, traits)
- Implementing error handling and Result types
- Reviewing Rust code for safety or performance issues
- Refactoring existing Rust codebases
- Designing APIs and public interfaces
- Optimizing Rust code for performance or clarity
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Type Safety | CRITICAL | use-typesafe-, use-enum- |
| 2 | Error Handling | CRITICAL-HIGH | result-, avoid-panic |
| 3 | API Design | HIGH | use-borrowed-, prefer-builder- |
| 4 | Code Quality | MEDIUM-HIGH | use-iterator-, prefer-format |
| 5 | Readability | MEDIUM | use-named-, avoid-boolean- |
| 6 | Performance | MEDIUM | avoid-rc, avoid-box |
Quick Reference
use-borrowed-argument-types– Use &str, &[T], &Path instead of &String, &Vec, &PathBufuse-enum-deserialization– Use exhaustive enum matching for safe deserializationuse-typesafe-index-wrappers– Wrap index types to prevent mixing different indicesresult-error-returns– Use ? operator instead of unwrap/expect in Result functionsavoid-panic– Use assert!, Result, or expect based on context instead of panic!use-iterator-transforms– Use iterator methods instead of explicit push loopsuse-copied– Use .copied() to avoid complex dereferencing patternsprefer-format– Use format! over manual string concatenationprefer-builder-pattern-for-complex– Use builder pattern for functions with 4+ parametersuse-named-placeholders– Use named placeholders instead of bare _ in destructuringdecimal-comparison– Use .is_sign_negative() instead of comparing to Decimal::ZEROcalculated-field-as-method– Implement calculated fields as methods not struct fieldsavoid-rc– Avoid unnecessary Rc when simpler ownership patterns workavoid-box– Don’t use Box for concrete types without legitimate reasonavoid-boolean-params– Replace boolean parameters with enums or structsmatch-statements-handle-all-cases– Explicitly handle all enum variants without catch-all patterns
How to Use
Read individual rule files for detailed explanations and code examples:
rules/use-borrowed-argument-types.md
rules/use-enum-deserialization.md
rules/use-typesafe-index-wrappers.md
rules/result-error-returns.md
rules/avoid-panic.md
rules/use-iterator-transforms.md
rules/use-copied.md
rules/prefer-format.md
rules/prefer-builder-pattern-for-complex.md
rules/use-named-placeholders.md
rules/decimal-comparison.md
rules/calculated-field-as-method.md
rules/avoid-rc.md
rules/avoid-box.md
rules/avoid-boolean-params.md
rules/match-statements-handle-all-cases.md
Each rule file contains:
- Brief explanation of why it matters
- When to use and when not to use the pattern
- Implementation requirements
- BAD code examples with explanation
- GOOD code examples with explanation
- Additional context and best practices