AgentSkillsCN

exploring-rust-crates

生成 Rust 文档,帮助理解 crate 的 API、结构与用法。在探索 Rust 代码、梳理 crate 组织架构、查找函数/类型/特质,或需要为 HASH 工作区中的某个 Rust 包提供背景信息时,可借助此工具快速掌握关键内容。

SKILL.md
--- frontmatter
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

bash
cargo doc --no-deps --all-features --package <package-name>

For the Entire Workspace

bash
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

  1. Crate organization - Module hierarchy and component relationships
  2. Public API surface - All public functions, types, traits, and constants
  3. Usage examples - Code examples from doctest blocks
  4. Error documentation - Documented error conditions and handling
  5. Type relationships - Trait implementations, type aliases, associated types

Viewing Documentation

Docs are generated at:

txt
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