#[derive(Clone, Debug, PartialEq)]
#[allow(non_camel_case_types)]
pub enum DkimAlgorithm<'hdr> {
Rsa_Sha1,
Rsa_Sha256,
Ed25519_Sha256,
Unknown(&'hdr str),
}
use crate::error::DkimAlgorithmError;
impl<'hdr> TryFrom<&'hdr str> for DkimAlgorithm<'hdr> {
type Error = DkimAlgorithmError;
fn try_from(algo: &'hdr str) -> Result<Self, Self::Error> {
let ret = match algo {
"rsa-sha1" => Self::Rsa_Sha1,
"rsa-sha256" => Self::Rsa_Sha256,
"ed25519-sha256" => Self::Ed25519_Sha256,
_ => Self::Unknown(algo),
};
Ok(ret)
}
}