Rust Crate 文档索引器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/rust-crate-documentation-indexer-2。
技能介绍
解决的问题
Rust 生态的 API 文档分散在 docs.rs 页面、rustdoc 生成结果和 crate 源码注释里。人读网页没问题,但脚本、IDE 索引、依赖审计或代码评审想稳定提取“这个类型实现了哪些 trait、泛型约束是什么、生命周期注解如何写”时,HTML 结构易变,信息容易被忽略。该技能面向这类机器可读的文档索引需求,把公开的 Rust crate 文档整理成可检索的 API 参考。
工作方式
核心能力是结合 rustdoc JSON output 与 cargo-doc 输出,从 docs.rs 上已有的 Rust crate 文档入手,而不是重新从源码猜测 API。索引过程中会提取:
- Trait implementations:某个类型、泛型或 trait object 实现了哪些 trait。
- Generic bounds:函数、struct、enum、trait 上的泛型约束,例如
T: Clone + Send这类边界。 - Lifetime annotations:函数签名、trait 方法和类型定义中的生命周期参数。
关键步骤可以理解为:
- 以 crate 文档为目标,定位
docs.rs上对应版本与构建的文档入口。 - 消费
rustdoc JSON与cargo-doc产生的文档数据,减少对页面布局的依赖。 - 将 trait 实现、泛型约束、生命周期注解抽取成结构化条目。
- 把这些条目组织成可搜索的 API 参考,便于按名称、trait、约束或生命周期查找。
适用边界
它适合做 crate API 的结构化索引和交叉查阅,不适合替代 rustdoc、源码阅读或官方 changelog。索引质量取决于 crate 文档是否完整、版本是否可复现,以及 rustdoc JSON / cargo-doc 输出是否包含所需信息。遇到私有 API、条件编译分支、宏展开结果或文档生成配置异常时,抽取结果可能不完整。文档来源为 docs.rs,其可用性和渲染内容由上游维护;若需要绝对精确,仍应回查对应 crate 版本源码。
使用场景
- 审查第三方 crate 时,需要提取某类型的 trait 实现和泛型约束,判断是否满足当前项目的安全与并发要求。
- 编写 IDE 插件时,需将 cargo-doc 输出的生命周期注解结构化,为开发者提供悬停提示和参数关联分析。
- 梳理复杂泛型库的 API 时,需将 rustdoc JSON 中的泛型边界提取为检索表,快速定位符合约束的方法。
适合人员
- Rust 库维护者,需要确保公开 API 的 trait 实现和泛型约束在文档中被准确提取并可供用户检索。
- IDE 工具开发者,希望解析 rustdoc JSON 输出,为 Rust 项目提供精准的代码补全与 API 导航功能。
- 安全审计工程师,在引入新依赖前需系统性核查 crate 的生命周期注解与并发 trait 实现是否合规。