Expand description
Source code parsing for enhanced documentation.
This module provides functionality to collect and parse Rust source code from dependencies, extracting information not available in rustdoc JSON:
- Function bodies and implementation details
- Private items (functions, structs, etc.)
- Constant and static values
- Macro definitions
- Test examples
§Architecture
The source parsing system has four main components:
SourceCollector- Collects dependency sources to.source_*/SourceLocator- Finds crate sources in the Cargo registrySourceParser- Parses Rust source files usingsyntypes- Data structures for parsed source information
§Workflow
use cargo_docs_md::source::{SourceCollector, CollectOptions};
// Collect dependency sources to .source_{timestamp}/
let collector = SourceCollector::new()?;
let result = collector.collect(&CollectOptions::default())?;
println!("Collected {} crates to {}", result.crates_collected, result.output_dir.display());§Feature Flag
This module requires the source-parsing feature:
cargo-docs-md = { version = "0.1", features = ["source-parsing"] }Re-exports§
pub use types::ConstInfo;pub use types::CrateSource;pub use types::EnumInfo;pub use types::FieldInfo;pub use types::FunctionInfo;pub use types::ImplInfo;pub use types::MacroInfo;pub use types::PrivateItem;pub use types::StaticInfo;pub use types::StructInfo;pub use types::TraitInfo;pub use types::TypeAliasInfo;pub use types::VariantInfo;
Modules§
- types
- Types for representing parsed source code information.
Structs§
- Collect
Options - Options for source collection.
- Collected
Crate - Metadata about a collected crate.
- Collection
Result - Result of a collection operation.
- Source
Collector - Collector for gathering dependency sources.
- Source
Locator - Locates crate sources in the Cargo registry.
- Source
Manifest - Manifest stored in
.source_*/manifest.json. - Source
Parser - Parser for Rust source code using
syn.
Functions§
- find_
source_ dir - Find the most recent
.source_*directory in the given root.