rust-trait-explorer
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseRust Trait Explorer
Rust Trait 探索器
Discover trait implementations and understand polymorphic designs.
探索trait的实现,理解多态设计。
Usage
使用方法
/rust-trait-explorer <TraitName|StructName>Examples:
- - Find all implementors of Handler trait
/rust-trait-explorer Handler - - Find all traits implemented by MyStruct
/rust-trait-explorer MyStruct
/rust-trait-explorer <TraitName|StructName>示例:
- - 查找Handler trait的所有实现者
/rust-trait-explorer Handler - - 查找MyStruct实现的所有trait
/rust-trait-explorer MyStruct
LSP Operations
LSP 操作
Go to Implementation
跳转到实现
Find all implementations of a trait.
LSP(
operation: "goToImplementation",
filePath: "src/traits.rs",
line: 10,
character: 11
)Use when:
- Trait name is known
- Want to find all implementors
- Understanding polymorphic code
查找某个trait的所有实现。
LSP(
operation: "goToImplementation",
filePath: "src/traits.rs",
line: 10,
character: 11
)适用场景:
- 已知trait名称
- 想要查找所有实现者
- 理解多态代码
Workflow
工作流程
Find Trait Implementors
查找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用户: "谁实现了Handler trait?"
│
▼
[1] 查找trait定义
LSP(goToDefinition) 或 workspaceSymbol
│
▼
[2] 获取实现
LSP(goToImplementation)
│
▼
[3] 为每个实现获取详情
LSP(documentSymbol) 获取方法
│
▼
[4] 生成实现映射Find Traits for a Type
查找类型实现的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用户: "MyStruct实现了哪些trait?"
│
▼
[1] 查找结构体定义
│
▼
[2] 搜索"impl * for MyStruct"
Grep模式匹配
│
▼
[3] 获取每个trait的详情
│
▼
[4] 生成trait列表Output Format
输出格式
Trait Implementors
Trait实现者
undefinedundefinedImplementations of Handler
HandlerHandler
的实现
HandlerTrait defined at: src/traits.rs:15
rust pub trait Handler { fn handle(&self, request: Request) -> Response; fn name(&self) -> &str; } Trait定义位置: src/traits.rs:15
rust pub trait Handler { fn handle(&self, request: Request) -> Response; fn name(&self) -> &str; } Implementors (4)
实现者(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 |
| 类型 | 位置 | 说明 |
|---|---|---|
| AuthHandler | src/handlers/auth.rs:20 | 处理认证 |
| ApiHandler | src/handlers/api.rs:15 | REST API端点 |
| WebSocketHandler | src/handlers/ws.rs:10 | WebSocket连接 |
| MockHandler | tests/mocks.rs:5 | 测试模拟 |
Implementation Details
实现详情
AuthHandler
AuthHandler
```rust
impl Handler for AuthHandler {
fn handle(&self, request: Request) -> Response {
// Authentication logic
}
fn name(&self) -> &str {
"auth"
}}
```
```rust
impl Handler for AuthHandler {
fn handle(&self, request: Request) -> Response {
// Authentication logic
}
fn name(&self) -> &str {
"auth"
}}
```
ApiHandler
ApiHandler
```rust
impl Handler for ApiHandler {
fn handle(&self, request: Request) -> Response {
// API routing logic
}
fn name(&self) -> &str {
"api"
}}
```
undefined```rust
impl Handler for ApiHandler {
fn handle(&self, request: Request) -> Response {
// API routing logic
}
fn name(&self) -> &str {
"api"
}}
```
undefinedTraits for a Type
类型实现的Trait
undefinedundefinedTraits implemented by User
UserUser
实现的Trait
UserStruct defined at: src/models/user.rs:10
结构体定义位置: src/models/user.rs:10
Standard Library Traits
标准库Trait
| Trait | Derived/Manual | Notes |
|---|---|---|
| Debug | #[derive] | Auto-generated |
| Clone | #[derive] | Auto-generated |
| Default | manual | Custom defaults |
| Display | manual | User-friendly output |
| Trait | 派生/手动实现 | 说明 |
|---|---|---|
| Debug | #[derive] | 自动生成 |
| Clone | #[derive] | 自动生成 |
| Default | manual | 自定义默认值 |
| Display | manual | 用户友好的输出 |
Serde Traits
Serde Trait
| Trait | Location |
|---|---|
| Serialize | #[derive] |
| Deserialize | #[derive] |
| Trait | 位置 |
|---|---|
| Serialize | #[derive] |
| Deserialize | #[derive] |
Project Traits
项目自定义Trait
| Trait | Location | Methods |
|---|---|---|
| Entity | src/db/entity.rs:30 | id(), created_at() |
| Validatable | src/validation.rs:15 | validate() |
| Trait | 位置 | 方法 |
|---|---|---|
| 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) undefined
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) undefinedTrait Hierarchy Visualization
Trait层级可视化
undefinedundefinedTrait Hierarchy
Trait层级
┌─────────────┐
│ Error │ (std)
└──────┬──────┘
│
┌────────────┼────────────┐
│ │ │
┌───────▼───────┐ ┌──▼──┐ ┌───────▼───────┐
│ AppError │ │ ... │ │ DbError │
└───────┬───────┘ └─────┘ └───────┬───────┘
│ │
┌───────▼───────┐ ┌───────▼───────┐
│ AuthError │ │ QueryError │
└───────────────┘ └───────────────┘
undefined┌─────────────┐
│ Error │ (std)
└──────┬──────┘
│
┌────────────┼────────────┐
│ │ │
┌───────▼───────┐ ┌──▼──┐ ┌───────▼───────┐
│ AppError │ │ ... │ │ DbError │
└───────┬───────┘ └─────┘ └───────┬───────┘
│ │
┌───────▼───────┐ ┌───────▼───────┐
│ AuthError │ │ QueryError │
└───────────────┘ └───────────────┘
undefinedAnalysis Features
分析功能
Coverage Check
覆盖率检查
undefinedundefinedTrait Implementation Coverage
Trait实现覆盖率
Trait: Handler (3 required methods)
| Implementor | handle() | name() | priority() | Complete |
|---|---|---|---|---|
| AuthHandler | ✅ | ✅ | ✅ | Yes |
| ApiHandler | ✅ | ✅ | ❌ default | Yes |
| MockHandler | ✅ | ✅ | ✅ | Yes |
undefinedTrait: Handler(3个必需方法)
| 实现者 | handle() | name() | priority() | 完成度 |
|---|---|---|---|---|
| AuthHandler | ✅ | ✅ | ✅ | 是 |
| ApiHandler | ✅ | ✅ | ❌ 默认 | 是 |
| MockHandler | ✅ | ✅ | ✅ | 是 |
undefinedBlanket Implementations
Blanket Implementations
undefinedundefinedBlanket Implementations
Blanket Implementations
The following blanket impls may apply to your types:
| Trait | Blanket Impl | Applies To |
|---|---|---|
| From<T> | | All types |
| Into<U> | | Types with From |
| ToString | | Types with Display |
undefined以下全局实现可能适用于你的类型:
| Trait | Blanket Impl | 适用类型 |
|---|---|---|
| From<T> | | 所有类型 |
| Into<U> | | 实现了From的类型 |
| ToString | | 实现了Display的类型 |
undefinedCommon Patterns
常见场景
| User Says | Action |
|---|---|
| "Who implements X?" | goToImplementation on trait |
| "What traits does Y impl?" | Grep for |
| "Show trait hierarchy" | Find super-traits recursively |
| "Is X: Send + Sync?" | Check std trait impls |
| 用户提问 | 操作 |
|---|---|
| "谁实现了X?" | 对trait执行goToImplementation |
| "Y实现了哪些trait?" | 搜索 |
| "显示trait层级" | 递归查找父trait |
| "X是否实现了Send + Sync?" | 检查标准库trait实现 |
Related Skills
相关技能
| When | See |
|---|---|
| Navigate to impl | rust-code-navigator |
| Call relationships | rust-call-graph |
| Project structure | rust-symbol-analyzer |
| Safe refactoring | rust-refactor-helper |
| 场景 | 查看 |
|---|---|
| 跳转到实现 | rust-code-navigator |
| 调用关系 | rust-call-graph |
| 项目结构 | rust-symbol-analyzer |
| 安全重构 | rust-refactor-helper |