use petgraph::prelude::NodeIndex;
use std::path::PathBuf;
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("Node not found for path {path:?}")]
NodeNotFound { path: PathBuf },
#[error("Weight not found for node index {index:?}")]
WeightNotFound { index: NodeIndex },
#[error("No summary info for node")]
NoSummaryInfo,
#[error(transparent)]
IoError(#[from] std::io::Error),
#[error(transparent)]
FmtError(#[from] std::fmt::Error),
#[error(transparent)]
ParseIntError(#[from] std::num::ParseIntError),
#[error(transparent)]
Infallible(#[from] std::convert::Infallible),
#[error("Invalid test name record entry {record}")]
InvalidTestNameRecordEntry { record: String },
#[error("Invalid source file record entry {record}")]
InvalidSourceFileRecordEntry { record: String },
#[error("Invalid version record entry {record}")]
InvalidVersionRecordEntry { record: String },
#[error("Invalid function record entry {record}")]
InvalidFunctionRecordEntry { record: String },
#[error("Invalid function data record entry {record}")]
InvalidFunctionDataRecordEntry { record: String },
#[error("Invalid functions found record entry {record}")]
InvalidFunctionsFoundRecordEntry { record: String },
#[error("Invalid functions hit record entry {record}")]
InvalidFunctionsHitRecordEntry { record: String },
#[error("Invalid branch data record entry {record}")]
InvalidBranchDataRecordEntry { record: String },
#[error("Invalid branches found record entry {record}")]
InvalidBranchesFoundRecordEntry { record: String },
#[error("Invalid branches hit record entry {record}")]
InvalidBranchesHitRecordEntry { record: String },
#[error("Invalid line data record entry {record}")]
InvalidLineDataRecordEntry { record: String },
#[error("Invalid lines found record entry {record}")]
InvalidLinesFoundRecordEntry { record: String },
#[error("Invalid lines hit record entry {record}")]
InvalidLinesHitRecordEntry { record: String },
#[error("Invalid end of record entry {record}")]
InvalidEndOfRecordEntry { record: String },
#[error("Invalid record entry {record}")]
InvalidRecordEntry { record: String },
}
pub type Result<T> = std::result::Result<T, Error>;