aboutsummaryrefslogtreecommitdiff
path: root/aero-collections/src/mail/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'aero-collections/src/mail/mod.rs')
-rw-r--r--aero-collections/src/mail/mod.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/aero-collections/src/mail/mod.rs b/aero-collections/src/mail/mod.rs
new file mode 100644
index 0000000..85361f3
--- /dev/null
+++ b/aero-collections/src/mail/mod.rs
@@ -0,0 +1,25 @@
+pub mod incoming;
+pub mod mailbox;
+pub mod query;
+pub mod snapshot;
+pub mod uidindex;
+pub mod unique_ident;
+pub mod namespace;
+
+// Internet Message Format
+// aka RFC 822 - RFC 2822 - RFC 5322
+// 2023-05-15 don't want to refactor this struct now.
+#[allow(clippy::upper_case_acronyms)]
+pub struct IMF<'a> {
+ raw: &'a [u8],
+ parsed: eml_codec::part::composite::Message<'a>,
+}
+
+impl<'a> TryFrom<&'a [u8]> for IMF<'a> {
+ type Error = ();
+
+ fn try_from(body: &'a [u8]) -> Result<IMF<'a>, ()> {
+ let parsed = eml_codec::parse_message(body).or(Err(()))?.1;
+ Ok(Self { raw: body, parsed })
+ }
+}