summaryrefslogtreecommitdiffstats
path: root/libimagmail
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2016-09-21 17:43:27 +0200
committerMatthias Beyer <mail@beyermatthias.de>2016-10-12 19:17:40 +0200
commit80a320d769611ca7da7da30f1c6640824ffb6172 (patch)
tree367ff305b8cfa23b93c08a20271a89301e40a83d /libimagmail
parent50fbc3898453257a82447d9e5a0f8e33feb42ef0 (diff)
Add intermediate buffer type for abstracting away lifetime foo from mailparse
Diffstat (limited to 'libimagmail')
-rw-r--r--libimagmail/src/mail.rs20
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> {