spectre/
error.rs

1//! Spectre errors.
2
3use std::sync::Arc;
4
5use thiserror::Error as ThisError;
6
7/// The result type returned by Spectre library functions.
8pub type Result<T> = std::result::Result<T, Error>;
9
10/// Possible Spectre errors.
11#[derive(ThisError, Debug)]
12pub enum Error {
13    /// I/O error.
14    #[error("io error")]
15    Io(#[from] std::io::Error),
16    /// Template parsing/rendering error.
17    #[error("template error")]
18    Template(#[from] tera::Error),
19    /// Error invoking Spectre.
20    #[error("error running Spectre")]
21    SpectreError,
22    /// Error parsing output files.
23    #[error("error parsing Spectre output file")]
24    Parse,
25    /// Error generating results.
26    #[error("error generating spectre results")]
27    Generator(#[from] Arc<Error>),
28    /// Error caching results.
29    #[error("error generating spectre results")]
30    Caching(#[from] Arc<cache::error::Error>),
31}