chur-build 0.3.0

A wrapper around tonic-build which adds dependencies
Documentation
use thiserror::Error;

pub type ChurResult<T> = Result<T, ChurError>;

#[derive(Debug, Error)]
pub enum ChurError {
    #[error("Failed to open file or directory - {0:?}")]
    IOError(#[from] std::io::Error),

    #[error("Failed to deserialise Manifest - {0}")]
    Manifest(String),

    #[error("Network Error - {0}")]
    Network(#[from] ureq::Error),

    #[error("Dependency Error - {0}")]
    Dependency(String),

    #[error("Archive Error - {0}")]
    Archive(#[from] archiver_rs::ArchiverError),
}

impl From<ron::error::Error> for ChurError {
    fn from(value: ron::error::Error) -> Self {
        Self::Manifest(value.to_string())
    }
}

impl From<ron::error::SpannedError> for ChurError {
    fn from(value: ron::error::SpannedError) -> Self {
        Self::Manifest(value.to_string())
    }
}