mcpField
R
rust-trait-explorer

rust-trait-explorer

github.com/actionbook開発1.6k3.2k 回インストール9 週間前に更新
リポジトリ

rust-trait-explorer について

LSP とコード検索で Rust のトレイト実装やポリモーフィズムを調べるスキルです。実装型や型が実装するトレイト、階層関係を確認できます。

主な機能

  1. 01トレイト実装型の検索
  2. 02型が実装するトレイトの一覧
  3. 03トレイト階層の確認
  4. 04実装カバレッジの確認
  5. 05包括的実装の特定

活用シーン

  1. 01あるトレイトの実装型を検索
  2. 02型が実装するトレイトを確認
  3. 03トレイトの継承関係を把握

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/rust-trait-explorerを入力して読み込まれたか確認します。

詳細

Rust Trait Explorer

トレイトの実装を見つけ、ポリモーフィックな設計を理解します。

使い方

/rust-trait-explorer <TraitName|StructName>

例:

  • /rust-trait-explorer Handler - Handler トレイトを実装するすべての型を見つけます
  • /rust-trait-explorer MyStruct - MyStruct が実装するすべてのトレイトを見つけます

LSP の操作

実装へ移動

トレイトのすべての実装を見つけます。

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

次の場合に使用します:

  • トレイト名がわかっている
  • すべての実装型を見つけたい
  • ポリモーフィックなコードを理解したい

ワークフロー

トレイトの実装型を見つける
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
型が実装するトレイトを見つける
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

出力形式

トレイトの実装型
## 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"
    }
}
​```
型が実装するトレイト
## 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 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 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 を実装しているのは誰?"トレイトで goToImplementation を実行
"Y はどのトレイトを impl している?"impl * for Y を Grep で検索
"トレイト階層を表示して"スーパー トレイトを再帰的に見つける
"X は Send + Sync ですか?"std トレイトの実装を確認

関連スキル

場合参照先
impl へ移動するrust-code-navigator
呼び出し関係rust-call-graph
プロジェクト構造rust-symbol-analyzer
安全なリファクタリングrust-refactor-helper

コメント