Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Write idiomatic Rust avoiding ownership pitfalls, lifetime confusion, and common borrow checker battles.
Write idiomatic Rust avoiding ownership pitfalls, lifetime confusion, and common borrow checker battles.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
TopicFileKey TrapOwnership & Borrowingownership-borrowing.mdMove semantics catch everyoneStrings & Typestypes-strings.mdString vs &str, UTF-8 indexingErrors & Iterationerrors-iteration.mdunwrap() in production, lazy iteratorsConcurrency & Memoryconcurrency-memory.mdRc not Send, RefCell panicsAdvanced Trapsadvanced-traps.mdunsafe, macros, FFI, performance
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
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
'static means CAN live forever, not DOES β String is '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
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
unwrap() panics β use ? or match in production ? needs Result/Option return type β main needs -> Result<()> expect("context") > unwrap() β shows why it panicked
.iter() borrows, .into_iter() moves β choose carefully .collect() needs type β collect::<Vec<_>>() or typed binding Iterators are lazy β nothing runs until consumed
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
RefCell panics at runtime β if borrow rules violated Box for recursive types β compiler needs known size Avoid Rc<RefCell<T>> spaghetti β rethink ownership
ErrorCauseFixvalue moved hereUsed after moveClone or borrowcannot borrow as mutableAlready borrowedRestructure or RefCellmissing lifetime specifierAmbiguous referenceAdd <'a>the trait bound X is not satisfiedMissing implCheck trait boundstype annotations neededCan't inferTurbofish or explicit typecannot move out of borrowed contentDeref movesClone or pattern match
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
Agent frameworks, memory systems, reasoning layers, and model-native orchestration.
Largest current source with strong distribution and engagement signals.