use core::fmt;
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub enum DoubleKemError {
InvalidWireLength {
expected: usize,
actual: usize,
},
InvalidWireEncoding,
EncapsulationFailed,
DecapsulationFailed,
}
impl fmt::Display for DoubleKemError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::InvalidWireLength { expected, actual } => {
write!(f, "invalid wire length: expected {expected}, got {actual}")
}
Self::InvalidWireEncoding => write!(f, "invalid MAUL wire encoding"),
Self::EncapsulationFailed => write!(f, "ML-KEM encapsulation failed"),
Self::DecapsulationFailed => write!(f, "ML-KEM decapsulation failed"),
}
}
}
#[cfg(feature = "std")]
impl std::error::Error for DoubleKemError {}