use {
depiction::*,
std::{io, sync::*},
thiserror::*,
};
#[derive(Debug, Error)]
pub enum StoreError {
#[error("ID: {0}")]
ID(String),
#[error("concurrency: {0}")]
Concurrency(String),
}
impl Depict for StoreError {
fn depict<WriteT>(&self, writer: &mut WriteT, context: &DepictionContext) -> io::Result<()>
where
WriteT: io::Write,
{
match self {
Self::ID(id) => write!(writer, "ID: {}", context.theme.error(id)),
Self::Concurrency(concurrency) => write!(writer, "concurrency: {}", context.theme.error(concurrency)),
}
}
}
impl<GuardT> From<PoisonError<GuardT>> for StoreError {
fn from(error: PoisonError<GuardT>) -> Self {
Self::Concurrency(error.to_string())
}
}