rust-expert-best-practices-code-review

📁 wispbit-ai/skills 📅 2 days ago
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, &PathBuf
  • use-enum-deserialization – Use exhaustive enum matching for safe deserialization
  • use-typesafe-index-wrappers – Wrap index types to prevent mixing different indices
  • result-error-returns – Use ? operator instead of unwrap/expect in Result functions
  • avoid-panic – Use assert!, Result, or expect based on context instead of panic!
  • use-iterator-transforms – Use iterator methods instead of explicit push loops
  • use-copied – Use .copied() to avoid complex dereferencing patterns
  • prefer-format – Use format! over manual string concatenation
  • prefer-builder-pattern-for-complex – Use builder pattern for functions with 4+ parameters
  • use-named-placeholders – Use named placeholders instead of bare _ in destructuring
  • decimal-comparison – Use .is_sign_negative() instead of comparing to Decimal::ZERO
  • calculated-field-as-method – Implement calculated fields as methods not struct fields
  • avoid-rc – Avoid unnecessary Rc when simpler ownership patterns work
  • avoid-box – Don’t use Box for concrete types without legitimate reason
  • avoid-boolean-params – Replace boolean parameters with enums or structs
  • match-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