use std::result;
use std::sync::Arc;
use thiserror::*;
pub type Result<T> = result::Result<T, GodraysError>;
#[derive(Clone, Error, Debug)]
pub enum GodraysError {
#[error("Godrays :: General error: {0}")]
GeneralError(String),
#[error("Godrays :: IO error: {0}")]
IOError(Arc<std::io::Error>),
}
impl From<std::io::Error> for GodraysError {
fn from(value: std::io::Error) -> Self {
GodraysError::IOError(Arc::new(value))
}
}