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}