Main Site ↗

rust

by martinholovsky322GitHub

Systems programming expertise for Tauri desktop application backend development with memory safety and performance optimization

Unlock Deep Analysis

Use AI to visualize the workflow and generate a realistic output preview for this skill.

Powered by Fastest LLM

Development
Compatible Agents
Claude Code
Claude Code
~/.claude/skills/
Codex CLI
Codex CLI
~/.codex/skills/
Gemini CLI
Gemini CLI
~/.gemini/skills/
O
OpenCode
~/.opencode/skills/
O
OpenClaw
~/.openclaw/skills/
GitHub Copilot
GitHub Copilot
~/.copilot/skills/
Cursor
Cursor
~/.cursor/skills/
W
Windsurf
~/.codeium/windsurf/skills/
C
Cline
~/.cline/skills/
R
Roo Code
~/.roo/skills/
K
Kiro
~/.kiro/skills/
J
Junie
~/.junie/skills/
A
Augment Code
~/.augment/skills/
W
Warp
~/.warp/skills/
G
Goose
~/.config/goose/skills/
SKILL.md

Quick Reference

TopicFileKey Trap
Ownership & Borrowingownership-borrowing.mdMove semantics catch everyone
Strings & Typestypes-strings.mdString vs &str, UTF-8 indexing
Errors & Iterationerrors-iteration.mdunwrap() in production, lazy iterators
Concurrency & Memoryconcurrency-memory.mdRc not Send, RefCell panics
Advanced Trapsadvanced-traps.mdunsafe, macros, FFI, performance

Critical Traps (High-Frequency Failures)

Ownership — #1 Source of Compiler Errors

  • Variable moved after use — clone explicitly or borrow with &
  • for item in vec moves vec — use &vec or .iter() to borrow
  • String moved into function — pass &str for read-only access

Borrowing — The Borrow Checker Always Wins

  • Can't have &mut and & simultaneously — restructure or interior mutability
  • Returning reference to local fails — return owned value instead
  • Mutable borrow through &mut self blocks all access — split struct or RefCell

Lifetimes — When Compiler Can't Infer

  • 'static means CAN live forever, not DOESString is 'static capable
  • Struct with reference needs <'a>struct Foo<'a> { bar: &'a str }
  • Function returning ref must tie to inputfn get<'a>(s: &'a str) -> &'a str

Strings — UTF-8 Surprises

  • s[0] doesn't compile — use .chars().nth(0) or .bytes()
  • .len() returns bytes, not chars — use .chars().count()
  • s1 + &s2 moves s1 — use format!("{}{}", s1, s2) to keep both

Error Handling — Production Code

  • unwrap() panics — use ? or match in production
  • ? needs Result/Option return type — main needs -> Result<()>
  • expect("context") > unwrap() — shows why it panicked

Iterators — Lazy Evaluation

  • .iter() borrows, .into_iter() moves — choose carefully
  • .collect() needs typecollect::<Vec<_>>() or typed binding
  • Iterators are lazy — nothing runs until consumed

Concurrency — Thread Safety

  • Rc is NOT Send — use Arc for threads
  • Mutex lock returns guard — auto-unlocks on drop, don't hold across await
  • RwLock deadlock — reader upgrading to writer blocks forever

Memory — Smart Pointers

  • RefCell panics at runtime — if borrow rules violated
  • Box for recursive types — compiler needs known size
  • Avoid Rc<RefCell<T>> spaghetti — rethink ownership

Common Compiler Errors (NEW)

ErrorCauseFix
value moved hereUsed after moveClone or borrow
cannot borrow as mutableAlready borrowedRestructure or RefCell
missing lifetime specifierAmbiguous referenceAdd <'a>
the trait bound X is not satisfiedMissing implCheck trait bounds
type annotations neededCan't inferTurbofish or explicit type
cannot move out of borrowed contentDeref movesClone or pattern match

Cargo Traps (NEW)

  • cargo update updates Cargo.lock, not Cargo.toml — manual version bump needed
  • Features are additive — can't disable a feature a dependency enables
  • [dev-dependencies] not in release binary — but in tests/examples
  • cargo build --release much faster — debug builds are slow intentionally

Source: https://github.com/martinholovsky/claude-skills-generator#skills-rust

Content curated from original sources, copyright belongs to authors

Grade B
-AI Score
Best Practices
Checking...
Try this Skill

User Rating

USER RATING

0UP
0DOWN
Loading files...

WORKS WITH

Claude Code
Claude
Codex CLI
Codex
Gemini CLI
Gemini
O
OpenCode
O
OpenClaw
GitHub Copilot
Copilot
Cursor
Cursor
W
Windsurf
C
Cline
R
Roo
K
Kiro
J
Junie
A
Augment
W
Warp
G
Goose