diff --git a/src/headerdef.rs b/src/headerdef.rs index 879dfc1e1..0bf70caf5 100644 --- a/src/headerdef.rs +++ b/src/headerdef.rs @@ -1,4 +1,6 @@ -#[derive(Debug, Display, Clone, PartialEq, Eq, EnumVariantNames)] +use crate::strum::AsStaticRef; + +#[derive(Debug, Display, Clone, PartialEq, Eq, EnumVariantNames, AsStaticStr)] #[strum(serialize_all = "kebab_case")] #[allow(dead_code)] pub enum HeaderDef { @@ -43,8 +45,8 @@ pub enum HeaderDef { impl HeaderDef { /// Returns the corresponding Event id. - pub fn get_headername(&self) -> String { - self.to_string() + pub fn get_headername(&self) -> &'static str { + self.as_static() } } @@ -55,8 +57,8 @@ mod tests { #[test] /// Test that kebab_case serialization works as expected fn kebab_test() { - assert_eq!(HeaderDef::From_.to_string(), "from"); + assert_eq!(HeaderDef::From_.get_headername(), "from"); - assert_eq!(HeaderDef::_TestHeader.to_string(), "test-header"); + assert_eq!(HeaderDef::_TestHeader.get_headername(), "test-header"); } } diff --git a/src/mimeparser.rs b/src/mimeparser.rs index c94ea6b57..5e733a667 100644 --- a/src/mimeparser.rs +++ b/src/mimeparser.rs @@ -402,7 +402,7 @@ impl MimeMessage { } pub fn get(&self, headerdef: HeaderDef) -> Option<&String> { - self.header.get(&headerdef.get_headername()) + self.header.get(headerdef.get_headername()) } fn parse_first_addr(&self, context: &Context, headerdef: HeaderDef) -> Option {