rust-trait-explorer

Explore Rust trait implementations and find all types implementing a trait or traits implemented by a type. Supports two primary queries: find all implementors of a trait using LSP goToImplementation , or discover all traits implemented by a struct using grep pattern matching Generates structured output including trait definitions, implementation tables, code snippets, and implementation hierarchies Provides coverage analysis to verify all trait methods are implemented and identifies blanket implementations that may apply Works with standard library traits, external crates (like Serde), and project-defined traits in a unified view

INSTALLATION
npx skills add https://github.com/zhanghandong/rust-skills --skill rust-trait-explorer
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

Rust Trait Explorer

Discover trait implementations and understand polymorphic designs.

Usage

/rust-trait-explorer <TraitName|StructName>

Examples:

  • /rust-trait-explorer Handler - Find all implementors of Handler trait
  • /rust-trait-explorer MyStruct - Find all traits implemented by MyStruct

LSP Operations

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

Workflow

Find Trait Implementors

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

Find Traits for a Type

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

Output Format

Trait Implementors

## Implementations of `Handler`

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

​```rust

pub trait Handler {

    fn handle(&#x26;self, request: Request) -> Response;

    fn name(&#x26;self) -> &#x26;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(&#x26;self, request: Request) -> Response {

        // Authentication logic

    }

    fn name(&#x26;self) -> &#x26;str {

        "auth"

    }

}

​```

#### ApiHandler

​```rust

impl Handler for ApiHandler {

    fn handle(&#x26;self, request: Request) -> Response {

        // API routing logic

    }

    fn name(&#x26;self) -> &#x26;str {

        "api"

    }

}

​```

Traits for a Type

## 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 Visualization

## Trait Hierarchy

                    ┌─────────────┐

                    │    Error    │ (std)

                    └──────┬──────┘

                           │

              ┌────────────┼────────────┐

              │            │            │

      ┌───────▼───────┐ ┌──▼──┐ ┌───────▼───────┐

      │  AppError     │ │ ... │ │  DbError      │

      └───────┬───────┘ └─────┘ └───────┬───────┘

              │                         │

      ┌───────▼───────┐         ┌───────▼───────┐

      │ AuthError     │         │ QueryError    │

      └───────────────┘         └───────────────┘

Analysis Features

Coverage Check

## Trait Implementation Coverage

Trait: Handler (3 required methods)

| Implementor | handle() | name() | priority() | Complete |

|-------------|----------|--------|------------|----------|

| AuthHandler | ✅ | ✅ | ✅ | Yes |

| ApiHandler | ✅ | ✅ | ❌ default | Yes |

| MockHandler | ✅ | ✅ | ✅ | Yes |

Blanket Implementations

## 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 |

Common Patterns

User Says

Action

"Who implements X?"

goToImplementation on trait

"What traits does Y impl?"

Grep for impl * for Y

"Show trait hierarchy"

Find super-traits recursively

"Is X: Send + Sync?"

Check std trait impls

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

BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card