diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2016-09-21 17:43:27 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2016-10-12 19:17:40 +0200 |
commit | 80a320d769611ca7da7da30f1c6640824ffb6172 (patch) | |
tree | 367ff305b8cfa23b93c08a20271a89301e40a83d /libimagmail | |
parent | 50fbc3898453257a82447d9e5a0f8e33feb42ef0 (diff) |
Add intermediate buffer type for abstracting away lifetime foo from mailparse
Diffstat (limited to 'libimagmail')
-rw-r--r-- | libimagmail/src/mail.rs | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/libimagmail/src/mail.rs b/libimagmail/src/mail.rs index 2fde3547..897fc37e 100644 --- a/libimagmail/src/mail.rs +++ b/libimagmail/src/mail.rs @@ -3,9 +3,27 @@ use std::path::Path; use libimagstore::store::{FileLockEntry, Store}; +use mailparse::{MailParseError, ParsedMail, parse_mail}; + +use result::Result; + +struct Buffer(String); + +impl Buffer { + pub fn parsed<'a>(&'a self) -> RResult<ParsedMail<'a>, MailParseError> { + parse_mail(self.0.as_bytes()) + } +} + +impl From<String> for Buffer { + fn from(data: String) -> Buffer { + Buffer(data) + } +} + pub struct Mail<'a> { fle: FileLockEntry<'a>, - parsedmail: ParsedMail, + buffer: Buffer, } impl<'a> Mail<'a> { |