use std::fmt::Display;
use std::fmt::Formatter;
pub type Sm3Result<T> = Result<T, Sm3Error>;
pub enum Sm3Error {
ErrorMsgLen,
}
impl std::fmt::Debug for Sm3Error {
fn fmt(&self, f: &mut Formatter<'_>) -> ::std::fmt::Result {
write!(f, "{self}")
}
}
impl From<Sm3Error> for &str {
fn from(e: Sm3Error) -> Self {
match e {
Sm3Error::ErrorMsgLen => "SM3 Pad: error msgLen",
}
}
}
impl Display for Sm3Error {
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
let err_msg = match self {
Sm3Error::ErrorMsgLen => "SM3 Pad: error msgLen",
};
write!(f, "{err_msg}")
}
}
#[cfg(test)]
mod tests {
use super::Sm3Error;
#[test]
fn test_error_display() {
assert_eq!(
format!("{}", Sm3Error::ErrorMsgLen),
"SM3 Pad: error msgLen"
)
}
}