use std::error::Error;
use std::fmt;
#[derive(Debug)]
pub enum StateWriteError {
InvalidStateId(String),
StorageError(Box<dyn Error>),
}
impl fmt::Display for StateWriteError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self {
StateWriteError::InvalidStateId(msg) => write!(f, "Invalid State Id: {}", msg),
StateWriteError::StorageError(err) => write!(f, "Storage Error: {}", err),
}
}
}
impl Error for StateWriteError {
fn source(&self) -> Option<&(dyn Error + 'static)> {
match self {
StateWriteError::InvalidStateId(_) => None,
StateWriteError::StorageError(err) => Some(err.as_ref()),
}
}
}
#[derive(Debug)]
pub enum StateReadError {
InvalidStateId(String),
InvalidKey(String),
StorageError(Box<dyn Error>),
}
impl fmt::Display for StateReadError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self {
StateReadError::InvalidStateId(msg) => write!(f, "Invalid State Id: {}", msg),
StateReadError::InvalidKey(key) => write!(f, "Invalid Key: {}", key),
StateReadError::StorageError(err) => write!(f, "Storage Error: {}", err),
}
}
}
impl Error for StateReadError {
fn source(&self) -> Option<&(dyn Error + 'static)> {
match self {
StateReadError::InvalidStateId(_) | StateReadError::InvalidKey(_) => None,
StateReadError::StorageError(err) => Some(err.as_ref()),
}
}
}
#[derive(Debug)]
pub enum StatePruneError {
InvalidStateId(String),
StorageError(Box<dyn Error>),
}
impl fmt::Display for StatePruneError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self {
StatePruneError::InvalidStateId(msg) => write!(f, "Invalid State Id: {}", msg),
StatePruneError::StorageError(err) => write!(f, "Storage Error: {}", err),
}
}
}
impl Error for StatePruneError {
fn source(&self) -> Option<&(dyn Error + 'static)> {
match self {
StatePruneError::InvalidStateId(_) => None,
StatePruneError::StorageError(err) => Some(err.as_ref()),
}
}
}