Rust
Write idiomatic Rust avoiding ownership pitfalls, lifetime confusion, and common borrow checker battles.
MIT-0 · Free to use, modify, and redistribute. No attribution required.
⭐ 4 · 1.4k · 13 current installs · 13 all-time installs
byIván@ivangdavila
MIT-0
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
Name/description (Rust guidance) align with requirements: it declares rustc and cargo as required binaries, which is appropriate for a Rust authoring helper.
Instruction Scope
SKILL.md and the included docs are purely educational guidance about ownership, lifetimes, errors, concurrency, etc.; they do not instruct the agent to read unrelated files, exfiltrate data, call external endpoints, or perform privileged system changes.
Install Mechanism
No install spec and no code files to execute are present. Being instruction-only minimizes the risk of downloading or running arbitrary code.
Credentials
The skill requests no environment variables, credentials, or config paths — nothing disproportionate to the stated purpose.
Persistence & Privilege
always is false and the skill does not request permanent or elevated privileges. Autonomous invocation is allowed by default on the platform but there are no additional privilege escalations requested by the skill.
Assessment
This skill is an instruction-only Rust reference and appears internally consistent. If you install it, ensure that the agent runs in an environment where rustc and cargo are legitimate system binaries you trust (the skill declares those as required). Because it can be invoked by the agent, be aware the agent might use local rust tooling when generating or checking code — if you run agents in a restricted environment, keep those restrictions in place. No credentials, downloads, or external endpoints are requested by this skill.Like a lobster shell, security has layers — review code before you run it.
Current versionv1.0.1
Download ziplatest
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
Runtime requirements
🦀 Clawdis
OSLinux · macOS · Windows
Binsrustc, cargo
SKILL.md
Quick Reference
| Topic | File | Key Trap |
|---|---|---|
| Ownership & Borrowing | ownership-borrowing.md | Move semantics catch everyone |
| Strings & Types | types-strings.md | String vs &str, UTF-8 indexing |
| Errors & Iteration | errors-iteration.md | unwrap() in production, lazy iterators |
| Concurrency & Memory | concurrency-memory.md | Rc not Send, RefCell panics |
| Advanced Traps | advanced-traps.md | unsafe, 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 vecmoves vec — use&vecor.iter()to borrowStringmoved into function — pass&strfor read-only access
Borrowing — The Borrow Checker Always Wins
- Can't have
&mutand&simultaneously — restructure or interior mutability - Returning reference to local fails — return owned value instead
- Mutable borrow through
&mut selfblocks all access — split struct orRefCell
Lifetimes — When Compiler Can't Infer
'staticmeans CAN live forever, not DOES —Stringis 'static capable- Struct with reference needs
<'a>—struct Foo<'a> { bar: &'a str } - Function returning ref must tie to input —
fn 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 + &s2moves s1 — useformat!("{}{}", s1, s2)to keep both
Error Handling — Production Code
unwrap()panics — use?ormatchin production?needsResult/Optionreturn type — main needs-> Result<()>expect("context")>unwrap()— shows why it panicked
Iterators — Lazy Evaluation
.iter()borrows,.into_iter()moves — choose carefully.collect()needs type —collect::<Vec<_>>()or typed binding- Iterators are lazy — nothing runs until consumed
Concurrency — Thread Safety
Rcis NOTSend— useArcfor threadsMutexlock returns guard — auto-unlocks on drop, don't hold across awaitRwLockdeadlock — reader upgrading to writer blocks forever
Memory — Smart Pointers
RefCellpanics at runtime — if borrow rules violatedBoxfor recursive types — compiler needs known size- Avoid
Rc<RefCell<T>>spaghetti — rethink ownership
Common Compiler Errors (NEW)
| Error | Cause | Fix |
|---|---|---|
value moved here | Used after move | Clone or borrow |
cannot borrow as mutable | Already borrowed | Restructure or RefCell |
missing lifetime specifier | Ambiguous reference | Add <'a> |
the trait bound X is not satisfied | Missing impl | Check trait bounds |
type annotations needed | Can't infer | Turbofish or explicit type |
cannot move out of borrowed content | Deref moves | Clone or pattern match |
Cargo Traps (NEW)
cargo updateupdates 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/examplescargo build --releasemuch faster — debug builds are slow intentionally
Files
6 totalSelect a file
Select a file to preview.
Comments
Loading comments…
