diff --git a/src/parse.rs b/src/parse.rs index 43f36f7..4aeb554 100644 --- a/src/parse.rs +++ b/src/parse.rs @@ -84,6 +84,7 @@ pub fn parse_fetches(lines: Vec) -> ZeroCopyResult> { uid: None, rfc822_header: None, rfc822: None, + email: None, }; for attr in attrs { @@ -95,6 +96,7 @@ pub fn parse_fetches(lines: Vec) -> ZeroCopyResult> { AttributeValue::Uid(uid) => fetch.uid = Some(uid), AttributeValue::Rfc822(rfc) => fetch.rfc822 = rfc, AttributeValue::Rfc822Header(rfc) => fetch.rfc822_header = rfc, + AttributeValue::BodySection {section: _, index: _, data} => fetch.email = data, _ => {} } } diff --git a/src/types/fetch.rs b/src/types/fetch.rs index e882555..67e3726 100644 --- a/src/types/fetch.rs +++ b/src/types/fetch.rs @@ -7,6 +7,7 @@ pub struct Fetch { pub uid: Option, pub(crate) rfc822_header: Option<&'static [u8]>, pub(crate) rfc822: Option<&'static [u8]>, + pub(crate) email: Option<&'static [u8]>, } impl Fetch { @@ -21,4 +22,8 @@ impl Fetch { pub fn rfc822<'a>(&'a self) -> Option<&'a [u8]> { self.rfc822 } + + pub fn email<'a>(&'a self) -> Option<&'a [u8]> { + self.email + } }