--- id: rust-complete name: Complete Rust Development description: >- A comprehensive skill for Rust development that combines error handling, testing, and logging patterns. Demonstrates the 'includes' composition feature by merging content from multiple standalone skills. tags: [rust, complete, example] includes: - skill: rust-error-handling into: rules - skill: testing-patterns into: checklist - skill: logging-patterns into: rules prefix: "[Logging] " --- # Complete Rust Development A comprehensive Rust development skill that combines error handling, testing, and logging patterns through composition. This skill demonstrates the `includes` feature: - Error handling rules from `rust-error-handling` are merged into Rules - Testing checklist from `testing-patterns` is merged into Checklist - Logging rules from `logging-patterns` are merged into Rules with a prefix ## Rules - Follow Rust idioms and conventions - Use `clippy` for linting: `cargo clippy -- -D warnings` - Format code with `rustfmt`: `cargo fmt` - Keep unsafe blocks minimal and well-documented ## Examples ```rust // Idiomatic Rust with proper error handling, logging, and tests use anyhow::{Context, Result}; use tracing::{info, instrument}; #[instrument] pub fn process_data(input: &str) -> Result { info!("processing data"); let parsed = parse_input(input) .context("failed to parse input")?; let result = transform(parsed) .context("transformation failed")?; info!(output_size = result.len(), "processing complete"); Ok(result) } #[cfg(test)] mod tests { use super::*; #[test] fn test_process_data_happy_path() { let input = "valid input"; let result = process_data(input); assert!(result.is_ok()); } #[test] fn test_process_data_invalid_input() { let input = ""; let result = process_data(input); assert!(result.is_err()); } } ``` ## Checklist - [ ] Code passes `cargo clippy -- -D warnings` - [ ] Code is formatted with `cargo fmt` - [ ] No `unsafe` blocks (or they are justified and documented) - [ ] Dependencies are minimal and audited