coding/rust-patterns/SKILL.md
Idiomatic Rust patterns and best practices for readable, safe, maintainable Rust: ownership, borrowing, API design, enums/traits, error handling, iterators, module layout, and tooling. Use when writing or reviewing `.rs` code, refactoring crates, porting non-idiomatic code into Rust, or designing Rust APIs.
npx skillsauth add aeondave/malskill rust-patternsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill is for day-to-day idiomatic Rust: clear ownership, small APIs, and code that feels native to the language instead of a direct port from somewhere else.
If the task is primarily profiling/benchmarking, use rust-performance. If the task is primarily test design or test repair, use rust-testing.
.rs modules, libraries, CLIs, or servicesResult for fallible work; reserve panic!, unwrap, and expect for tests or truly impossible states.cargo fmt and cargo clippy; style should not be negotiated by hand.fmt, clippy, test, docs) is part of the definition of done.cargo fmt, cargo clippy, and cargo test before review.clone() used only to silence the borrow checker unless the clone is cheap and intentional&str, &[T], &Path, impl AsRef<Path>) instead of forcing ownership?; production code does not rely on stray unwrappub, pub(crate), private helpers, selective pub use)clone() used only to “make borrow checker errors go away”unwrap/expect in operational pathsconnect_with_timeout(...) -> io::Result<TcpStream> can use std::net normally and a Windows FFI helper only in a constrained build mode.windows-sys features, run a real target build; cargo check can pass before the linker sees missing imports or feature flags.Load on demand:
references/ownership-and-borrowing.md — use when signatures, lifetimes, moves, or borrow-checker friction are centralreferences/api-design.md — use when shaping public types, traits, builders, and module boundariesreferences/errors-and-results.md — use when designing recoverable errors or cleaning up panic-prone codereferences/collections-and-iterators.md — use when choosing collections or refactoring loops into clearer iterator codereferences/tooling-and-docs.md — use when reviewing formatting, clippy, rustdoc, features, and crate hygienedevelopment
Auth/lab ref: Unicorn Engine CPU-only emulation for shellcode, decryptors, custom VM handlers, instruction tracing, memory hooks, and register-level experiments.
development
Auth/lab ref: Renode board and SoC simulation for MCU/RTOS firmware, UART/GPIO/peripheral modeling, GDB remote debugging, REPL platforms, and RESC scripts.
development
Auth/lab ref: Qiling OS-layer binary emulation for PE/ELF/Mach-O/UEFI/shellcode with rootfs, syscall/API hooks, filesystem mapping, and runtime patching.
databases
Auth/lab ref: QEMU user-mode and full-system emulation for cross-arch binaries, firmware, kernels, disks, serial consoles, networking, and GDB stubs.