diff options
Diffstat (limited to 'src/imap/index.rs')
-rw-r--r-- | src/imap/index.rs | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/src/imap/index.rs b/src/imap/index.rs index 48d5ebd..8ec3cca 100644 --- a/src/imap/index.rs +++ b/src/imap/index.rs @@ -1,7 +1,7 @@ use std::num::NonZeroU32; use anyhow::{anyhow, bail, Result}; -use imap_codec::imap_types::sequence::{self, Sequence, SequenceSet, SeqOrUid}; +use imap_codec::imap_types::sequence::{self, SeqOrUid, Sequence, SequenceSet}; use crate::mail::uidindex::{ImapUid, UidIndex}; use crate::mail::unique_ident::UniqueIdent; @@ -96,18 +96,20 @@ pub struct MailIndex<'a> { } impl<'a> MailIndex<'a> { - // The following functions are used to implement the SEARCH command + // The following functions are used to implement the SEARCH command pub fn is_in_sequence_i(&self, seq: &Sequence) -> bool { match seq { Sequence::Single(SeqOrUid::Asterisk) => true, Sequence::Single(SeqOrUid::Value(target)) => target == &self.i, - Sequence::Range(SeqOrUid::Asterisk, SeqOrUid::Value(x)) - | Sequence::Range(SeqOrUid::Value(x), SeqOrUid::Asterisk) => x <= &self.i, - Sequence::Range(SeqOrUid::Value(x1), SeqOrUid::Value(x2)) => if x1 < x2 { - x1 <= &self.i && &self.i <= x2 - } else { - x1 >= &self.i && &self.i >= x2 - }, + Sequence::Range(SeqOrUid::Asterisk, SeqOrUid::Value(x)) + | Sequence::Range(SeqOrUid::Value(x), SeqOrUid::Asterisk) => x <= &self.i, + Sequence::Range(SeqOrUid::Value(x1), SeqOrUid::Value(x2)) => { + if x1 < x2 { + x1 <= &self.i && &self.i <= x2 + } else { + x1 >= &self.i && &self.i >= x2 + } + } Sequence::Range(SeqOrUid::Asterisk, SeqOrUid::Asterisk) => true, } } @@ -117,17 +119,21 @@ impl<'a> MailIndex<'a> { Sequence::Single(SeqOrUid::Asterisk) => true, Sequence::Single(SeqOrUid::Value(target)) => target == &self.uid, Sequence::Range(SeqOrUid::Asterisk, SeqOrUid::Value(x)) - | Sequence::Range(SeqOrUid::Value(x),SeqOrUid::Asterisk) => x <= &self.uid, - Sequence::Range(SeqOrUid::Value(x1), SeqOrUid::Value(x2)) => if x1 < x2 { - x1 <= &self.uid && &self.uid <= x2 - } else { - x1 >= &self.uid && &self.uid >= x2 - }, + | Sequence::Range(SeqOrUid::Value(x), SeqOrUid::Asterisk) => x <= &self.uid, + Sequence::Range(SeqOrUid::Value(x1), SeqOrUid::Value(x2)) => { + if x1 < x2 { + x1 <= &self.uid && &self.uid <= x2 + } else { + x1 >= &self.uid && &self.uid >= x2 + } + } Sequence::Range(SeqOrUid::Asterisk, SeqOrUid::Asterisk) => true, } } pub fn is_flag_set(&self, flag: &str) -> bool { - self.flags.iter().any(|candidate| candidate.as_str() == flag) + self.flags + .iter() + .any(|candidate| candidate.as_str() == flag) } } |