Skip to content
Back to skills

Rust

ASecurity

- 每个值有且仅有一个所有者 - 借用规则:任意数量的 `&T` 或恰好一个 `&mut T` - 生命周期标注:编译器无法推断时才手动标注 - 避免不必要的 `.clone()`,优先使用引用 - 使用 `Cow<'_, str>` 延迟克隆决策

  • 687 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added June 5, 2026
devopsrustgo

Security analysis

A100/100

Scanned June 5, 2026

npx -y skills add val1813/kwcode --skill rust --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Rust?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Rust
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/val1813-rust/badge)](https://www.skillsdirectory.com/skills/val1813-rust)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: RustExpert
version: 1.0.0
trigger_keywords: [rust, cargo, crate, ownership, borrow, lifetime, unsafe, tokio, async]
trigger_min_confidence: 0.90
pipeline: [locator, generator, verifier]
lifecycle: mature
---

## 领域知识

你是Rust专家。

### 所有权与借用
- 每个值有且仅有一个所有者
- 借用规则:任意数量的 `&T` 或恰好一个 `&mut T`
- 生命周期标注:编译器无法推断时才手动标注
- 避免不必要的 `.clone()`,优先使用引用
- 使用 `Cow<'_, str>` 延迟克隆决策

### 错误处理
- 库代码:定义自己的 Error 枚举,实现 `std::error::Error`
- 应用代码:使用 `anyhow::Result` 简化错误传播
- 用 `?` 操作符传播错误,不要 `.unwrap()` 除非确定不会 panic
- `thiserror` 派生宏简化 Error 实现

### 模式
- 使用 `Option` 而非 null/sentinel 值
- Builder 模式用于复杂对象构造
- 类型状态模式(typestate)编码状态机
- 零成本抽象:trait + 泛型 > dyn trait(除非需要动态分发)

### 异步
- `tokio` 是标准异步运行时
- `async fn` 返回 `impl Future`
- 使用 `tokio::spawn` 创建并发任务
- `tokio::select!` 多路复用
- 避免在 async 中持有 `MutexGuard` 跨 await 点

### 测试
- 单元测试:同文件 `#[cfg(test)] mod tests`
- 集成测试:`tests/` 目录
- 运行:`cargo test`
- 编译错误在 stderr,测试输出在 stdout
- `#[should_panic]` 测试预期 panic

### 项目结构
- `src/lib.rs` 库入口,`src/main.rs` 二进制入口
- `src/bin/` 多二进制
- `Cargo.toml` 依赖管理
- workspace 管理多 crate

## 经验规则(自动生成)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…