coding-guidelines
Original:🇺🇸 English
Not Translated
Use when asking about Rust code style or best practices. Keywords: naming, formatting, comment, clippy, rustfmt, lint, code style, best practice, P.NAM, G.FMT, code review, naming convention, variable naming, function naming, type naming, 命名规范, 代码风格, 格式化, 最佳实践, 代码审查, 怎么命名
2installs
Sourceactionbook/rust-skills
Added on
NPX Install
npx skill4agent add actionbook/rust-skills coding-guidelinesSKILL.md Content
Rust Coding Guidelines (50 Core Rules)
Naming (Rust-Specific)
| Rule | Guideline |
|---|---|
No | |
| Iterator convention | |
| Conversion naming | |
| Static var prefix | |
Data Types
| Rule | Guideline |
|---|---|
| Use newtypes | |
| Prefer slice patterns | |
| Pre-allocate | |
| Avoid Vec abuse | Use arrays for fixed sizes |
Strings
| Rule | Guideline |
|---|---|
| Prefer bytes | |
Use | When might modify borrowed data |
Use | Over string concatenation with |
| Avoid nested iteration | |
Error Handling
| Rule | Guideline |
|---|---|
Use | Not |
| When value guaranteed |
| Assertions for invariants | |
Memory
| Rule | Guideline |
|---|---|
| Meaningful lifetimes | |
| Avoid panic |
| Shadowing for transformation | |
Concurrency
| Rule | Guideline |
|---|---|
| Identify lock ordering | Prevent deadlocks |
| Atomics for primitives | Not Mutex for bool/usize |
| Choose memory order carefully | Relaxed/Acquire/Release/SeqCst |
Async
| Rule | Guideline |
|---|---|
| Sync for CPU-bound | Async is for I/O |
| Don't hold locks across await | Use scoped guards |
Macros
| Rule | Guideline |
|---|---|
| Avoid unless necessary | Prefer functions/generics |
| Follow Rust syntax | Macro input should look like Rust |
Deprecated → Better
| Deprecated | Better | Since |
|---|---|---|
| | 1.70 |
| | 1.80 |
| | - |
| | - |
| | - |
| | 2018 |
Quick Reference
Naming: snake_case (fn/var), CamelCase (type), SCREAMING_CASE (const)
Format: rustfmt (just use it)
Docs: /// for public items, //! for module docs
Lint: #![warn(clippy::all)]Claude knows Rust conventions well. These are the non-obvious Rust-specific rules.