From 5d19d4f7c772e45dd0dc95763fedb2e761b369ed Mon Sep 17 00:00:00 2001 From: Jan Christian Kaessens Date: Thu, 11 Jan 2018 19:55:30 +0100 Subject: [PATCH] add handling of STATUS messages in parse_mailbox --- src/parse.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/parse.rs b/src/parse.rs index d511fe67..2f924789 100644 --- a/src/parse.rs +++ b/src/parse.rs @@ -1,6 +1,7 @@ use regex::Regex; use nom::IResult; use imap_proto::{self, Response}; +use imap_proto::types::StatusAttribute; use super::types::*; use super::error::{Error, ParseError, Result}; @@ -181,7 +182,18 @@ pub fn parse_mailbox(mut lines: &[u8]) -> Result { .flags .extend(flags.into_iter().map(|s| s.to_string())); } - MailboxDatum::SubList { .. } | MailboxDatum::List { .. } => {} + MailboxDatum::SubList { .. } | MailboxDatum::List { .. } => {}, + MailboxDatum::Status { mailbox: _, status } => { + for f in status.into_iter() { + match f { + StatusAttribute::Recent(r) => mailbox.recent = r, + StatusAttribute::Unseen(u) => mailbox.unseen = Some(u), + StatusAttribute::UidNext(u) => mailbox.uid_next = Some(u), + StatusAttribute::UidValidity(u) => mailbox.uid_validity = Some(u), + StatusAttribute::Messages(m) => mailbox.exists = m, + } + } + } } } IResult::Done(_, resp) => {