| name | exploring-rust-crates |
| description | Generate Rust documentation to understand crate APIs, structure, and usage. Use when exploring Rust code, understanding crate organization, finding functions/types/traits, or needing context about a Rust package in the HASH workspace. |
| license | AGPL-3.0 |
| metadata | {"triggers":{"type":"domain","enforcement":"suggest","priority":"medium","keywords":["cargo doc","rust documentation","crate api","rust crate","module hierarchy"],"intent-patterns":["\\b(explore|understand|learn)\\b.*?\\b(rust|crate|package)\\b","\\b(what|how)\\b.*?\\b(functions|types|traits|api)\\b.*?\\bcrate\\b","\\bdocument(ation)?\\b.*?\\brust\\b"]}} |
Exploring Rust Crates
Generate and use Rust documentation to understand crate APIs, structure, and code organization in the HASH workspace.
Generating Documentation
For a Specific Package
cargo doc --no-deps --all-features --package <package-name>
For the Entire Workspace
cargo doc --no-deps --all-features --workspace
Key Flags
--no-deps: Document local code only (faster, less noise)
--all-features: Include all feature-gated APIs
--package <name>: Target a specific crate
--workspace: Document all crates in the workspace
--document-private-items: Include internal implementation details
What Generated Docs Provide
- Crate organization - Module hierarchy and component relationships
- Public API surface - All public functions, types, traits, and constants
- Usage examples - Code examples from doctest blocks
- Error documentation - Documented error conditions and handling
- Type relationships - Trait implementations, type aliases, associated types
Viewing Documentation
Docs are generated at:
target/doc/<crate_name>/index.html
Tips
- Generate docs before diving into unfamiliar Rust code
- Cross-reference
# Errors sections for error handling patterns
- Look for
# Examples sections for idiomatic usage patterns