rustdoc_json_to_markdown/
parser.rs

1//! JSON parser for rustdoc output.
2
3use anyhow::{Context, Result};
4use rustdoc_types::Crate;
5use std::path::Path;
6
7/// Load and parse a rustdoc JSON file.
8pub fn load_rustdoc_json(path: &Path) -> Result<Crate> {
9    let contents = std::fs::read_to_string(path)
10        .with_context(|| format!("Failed to read file: {}", path.display()))?;
11
12    let crate_data: Crate = serde_json::from_str(&contents)
13        .with_context(|| format!("Failed to parse JSON from: {}", path.display()))?;
14
15    println!("Loaded crate: {} (format version: {})",
16             crate_data.index.get(&crate_data.root)
17                 .and_then(|item| item.name.as_deref())
18                 .unwrap_or("unknown"),
19             crate_data.format_version);
20
21    Ok(crate_data)
22}