use std::error::Error;
use std::fmt;
use crate::error::{InternalError, InvalidStateError};
#[derive(Debug)]
pub enum SqlMerkleStateBuildError {
InternalError(InternalError),
InvalidStateError(InvalidStateError),
}
impl fmt::Display for SqlMerkleStateBuildError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self {
SqlMerkleStateBuildError::InternalError(e) => f.write_str(&e.to_string()),
SqlMerkleStateBuildError::InvalidStateError(e) => f.write_str(&e.to_string()),
}
}
}
impl Error for SqlMerkleStateBuildError {
fn source(&self) -> Option<&(dyn Error + 'static)> {
match *self {
SqlMerkleStateBuildError::InternalError(ref e) => Some(e),
SqlMerkleStateBuildError::InvalidStateError(ref e) => Some(e),
}
}
}
impl From<InternalError> for SqlMerkleStateBuildError {
fn from(err: InternalError) -> Self {
SqlMerkleStateBuildError::InternalError(err)
}
}
impl From<InvalidStateError> for SqlMerkleStateBuildError {
fn from(err: InvalidStateError) -> Self {
SqlMerkleStateBuildError::InvalidStateError(err)
}
}