Module source

Module source 

Source
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:

  1. SourceCollector - Collects dependency sources to .source_*/
  2. SourceLocator - Finds crate sources in the Cargo registry
  3. SourceParser - Parses Rust source files using syn
  4. types - 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§

CollectOptions
Options for source collection.
CollectedCrate
Metadata about a collected crate.
CollectionResult
Result of a collection operation.
SourceCollector
Collector for gathering dependency sources.
SourceLocator
Locates crate sources in the Cargo registry.
SourceManifest
Manifest stored in .source_*/manifest.json.
SourceParser
Parser for Rust source code using syn.

Functions§

find_source_dir
Find the most recent .source_* directory in the given root.