pub type Result<T> = std::result::Result<T, Error>;
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("cargo metadata failed: {0}")]
CargoMetadata(#[from] cargo_metadata::Error),
#[error("cargo rustdoc failed: {message}")]
RustdocInvocation {
message: String,
},
#[error("rustdoc JSON parse failed: {0}")]
RustdocParse(#[from] serde_json::Error),
#[error("rustdoc format version mismatch: expected {expected}, found {found}")]
FormatVersionMismatch {
expected: u32,
found: u32,
},
#[error("io: {0}")]
Io(#[from] std::io::Error),
#[error("config error: {message}")]
Config {
message: String,
},
#[error("generate stage failed: {source}\nindex summary: {index_summary}")]
Generate {
#[source]
source: Box<Error>,
index_summary: String,
},
}