chur_build/
error.rs

1use thiserror::Error;
2
3pub type ChurResult<T> = Result<T, ChurError>;
4
5#[derive(Debug, Error)]
6pub enum ChurError {
7    #[error("Failed to open file or directory - {0:?}")]
8    IOError(#[from] std::io::Error),
9
10    #[error("Failed to deserialise Manifest - {0}")]
11    Manifest(String),
12
13    #[error("Network Error - {0}")]
14    Network(#[from] ureq::Error),
15
16    #[error("Dependency Error - {0}")]
17    Dependency(String),
18
19    #[error("Archive Error - {0}")]
20    Archive(#[from] archiver_rs::ArchiverError),
21}
22
23impl From<ron::error::Error> for ChurError {
24    fn from(value: ron::error::Error) -> Self {
25        Self::Manifest(value.to_string())
26    }
27}
28
29impl From<ron::error::SpannedError> for ChurError {
30    fn from(value: ron::error::SpannedError) -> Self {
31        Self::Manifest(value.to_string())
32    }
33}