use std::sync::Arc;
use thiserror::Error as ThisError;
pub type Result<T> = std::result::Result<T, Error>;
#[derive(ThisError, Debug)]
pub enum Error {
#[error("io error")]
Io(#[from] std::io::Error),
#[error("template error")]
Template(#[from] tera::Error),
#[error("error running Spectre")]
SpectreError,
#[error("error parsing Spectre output file")]
Parse,
#[error("error generating spectre results")]
Generator(#[from] Arc<Error>),
#[error("error generating spectre results")]
Caching(#[from] Arc<cache::error::Error>),
}