Learn-skills.dev rust-trait-explorer
Explore Rust trait implementations using LSP. Triggers on: /trait-impl, find implementations, who implements, trait 实现, 谁实现了, 实现了哪些trait
install
source · Clone the upstream repo
git clone https://github.com/NeverSight/learn-skills.dev
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeverSight/learn-skills.dev "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/skills-md/actionbook/rust-skills/rust-trait-explorer" ~/.claude/skills/neversight-learn-skills-dev-rust-trait-explorer && rm -rf "$T"
manifest:
data/skills-md/actionbook/rust-skills/rust-trait-explorer/SKILL.mdsource content
Rust Trait Explorer
Discover trait implementations and understand polymorphic designs.
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
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(&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 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 |
| "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 |