mcpField
R
rust-trait-explorer

rust-trait-explorer

github.com/actionbook开发1.6k3.2k 次安装9 周前更新
代码仓库

关于 rust-trait-explorer

通过 LSP 和代码搜索探索 Rust trait 实现及多态设计,适合分析代码结构的开发者。可查找 trait 的实现者、类型实现的 trait 及其层级。

主要功能

  1. 01查找 trait 实现者
  2. 02列出类型实现的 trait
  3. 03查看 trait 层级
  4. 04检查实现覆盖情况
  5. 05识别泛型实现

适用场景

  1. 01查找实现某 trait 的类型
  2. 02检查某类型实现的 trait
  3. 03理解 trait 继承关系

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/actionbook/rust-skills --skill rust-trait-explorer

安装后在 Claude Code 中输入/rust-trait-explorer确认已加载。

详细介绍

Rust Trait 探索器

发现 trait 实现并了解多态设计。

用法

/rust-trait-explorer <TraitName|StructName>

示例:

  • /rust-trait-explorer Handler - 查找 Handler trait 的所有实现者
  • /rust-trait-explorer MyStruct - 查找 MyStruct 实现的所有 trait

LSP 操作

转到实现

查找 trait 的所有实现。

LSP(
  operation: "goToImplementation",
  filePath: "src/traits.rs",
  line: 10,
  character: 11
)

适用场景:

  • 已知 trait 名称
  • 想查找所有实现者
  • 了解多态代码

工作流

查找 trait 实现者
User: "Who implements the Handler trait?"
    │
    ▼
[1] Find trait definition
    LSP(goToDefinition) or workspaceSymbol
    │
    ▼
[2] Get implementations
    LSP(goToImplementation)
    │
    ▼
[3] For each impl, get details
    LSP(documentSymbol) for methods
    │
    ▼
[4] Generate implementation map
查找类型实现的 trait
User: "What traits does MyStruct implement?"
    │
    ▼
[1] Find struct definition
    │
    ▼
[2] Search for "impl * for MyStruct"
    Grep pattern matching
    │
    ▼
[3] Get trait details for each
    │
    ▼
[4] Generate trait list

输出格式

Trait 实现者
## Implementations of `Handler`

**Trait defined at:** src/traits.rs:15

​```rust
pub trait Handler {
    fn handle(&self, request: Request) -> Response;
    fn name(&self) -> &str;
}
​```

### Implementors (4)

| Type | Location | Notes |
|------|----------|-------|
| AuthHandler | src/handlers/auth.rs:20 | Handles authentication |
| ApiHandler | src/handlers/api.rs:15 | REST API endpoints |
| WebSocketHandler | src/handlers/ws.rs:10 | WebSocket connections |
| MockHandler | tests/mocks.rs:5 | Test mock |

### Implementation Details

#### AuthHandler
​```rust
impl Handler for AuthHandler {
    fn handle(&self, request: Request) -> Response {
        // Authentication logic
    }

    fn name(&self) -> &str {
        "auth"
    }
}
​```

#### ApiHandler
​```rust
impl Handler for ApiHandler {
    fn handle(&self, request: Request) -> Response {
        // API routing logic
    }

    fn name(&self) -> &str {
        "api"
    }
}
​```
类型实现的 trait
## Traits implemented by `User`

**Struct defined at:** src/models/user.rs:10

### Standard Library Traits
| Trait | Derived/Manual | Notes |
|-------|----------------|-------|
| Debug | #[derive] | Auto-generated |
| Clone | #[derive] | Auto-generated |
| Default | manual | Custom defaults |
| Display | manual | User-friendly output |

### Serde Traits
| Trait | Location |
|-------|----------|
| Serialize | #[derive] |
| Deserialize | #[derive] |

### Project Traits
| Trait | Location | Methods |
|-------|----------|---------|
| Entity | src/db/entity.rs:30 | id(), created_at() |
| Validatable | src/validation.rs:15 | validate() |

### Implementation Hierarchy

​```
User
├── derive
│   ├── Debug
│   ├── Clone
│   ├── Serialize
│   └── Deserialize
└── impl
    ├── Default (src/models/user.rs:50)
    ├── Display (src/models/user.rs:60)
    ├── Entity (src/models/user.rs:70)
    └── Validatable (src/models/user.rs:85)
​```

Trait 层级可视化

## Trait Hierarchy

                    ┌─────────────┐
                    │    Error    │ (std)
                    └──────┬──────┘
                           │
              ┌────────────┼────────────┐
              │            │            │
      ┌───────▼───────┐ ┌──▼──┐ ┌───────▼───────┐
      │  AppError     │ │ ... │ │  DbError      │
      └───────┬───────┘ └─────┘ └───────┬───────┘
              │                         │
      ┌───────▼───────┐         ┌───────▼───────┐
      │ AuthError     │         │ QueryError    │
      └───────────────┘         └───────────────┘

分析功能

覆盖情况检查
## Trait Implementation Coverage

Trait: Handler (3 required methods)

| Implementor | handle() | name() | priority() | Complete |
|-------------|----------|--------|------------|----------|
| AuthHandler | ✅ | ✅ | ✅ | Yes |
| ApiHandler | ✅ | ✅ | ❌ default | Yes |
| MockHandler | ✅ | ✅ | ✅ | Yes |
Blanket 实现
## Blanket Implementations

The following blanket impls may apply to your types:

| Trait | Blanket Impl | Applies To |
|-------|--------------|------------|
| From<T> | `impl<T> From<T> for T` | All types |
| Into<U> | `impl<T, U> Into<U> for T where U: From<T>` | Types with From |
| ToString | `impl<T: Display> ToString for T` | Types with Display |

常见模式

用户提问操作
“谁实现了 X?”对 trait 执行 goToImplementation
“Y 实现了哪些 trait?”搜索 impl * for Y
“显示 trait 层级”递归查找 super-trait
“X: Send + Sync 吗?”检查 std trait 实现

相关技能

场景查看
跳转到 implrust-code-navigator
调用关系rust-call-graph
项目结构rust-symbol-analyzer
安全重构rust-refactor-helper

评论

支持 Markdown