use crate::FdbError;
use crate::tuple::PackError;
use std::fmt;
#[derive(Debug)]
pub enum RankedRegisterError {
Fdb(FdbError),
PackError(PackError),
InvalidState(String),
}
impl fmt::Display for RankedRegisterError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::Fdb(e) => write!(f, "Database error: {e}"),
Self::PackError(e) => write!(f, "Pack error: {e:?}"),
Self::InvalidState(msg) => write!(f, "Invalid state: {msg}"),
}
}
}
impl std::error::Error for RankedRegisterError {}
impl From<FdbError> for RankedRegisterError {
fn from(error: FdbError) -> Self {
Self::Fdb(error)
}
}
impl From<PackError> for RankedRegisterError {
fn from(error: PackError) -> Self {
Self::PackError(error)
}
}
pub type Result<T> = std::result::Result<T, RankedRegisterError>;