use thiserror::Error;
#[derive(Debug, Error)]
pub enum DisplayerError {
#[error("Not implemented for this format")]
NotImplementedForFormat,
#[error("I/O error")]
IoError(
#[from]
#[source]
std::io::Error,
),
#[error("Displayer error: {0}")]
OutputFormatError(
#[from]
#[source]
Box<dyn std::error::Error + Send + Sync>,
),
}
pub trait IntoDisplayerError {
fn into_displayer_error(self) -> DisplayerError;
}
impl<T> IntoDisplayerError for T
where
T: std::error::Error + Send + Sync + 'static,
{
fn into_displayer_error(self) -> DisplayerError {
DisplayerError::OutputFormatError(Box::new(self))
}
}