diff options
author | Quentin Dufour <quentin@deuxfleurs.fr> | 2024-01-06 23:24:44 +0100 |
---|---|---|
committer | Quentin Dufour <quentin@deuxfleurs.fr> | 2024-01-06 23:24:44 +0100 |
commit | 4e3cbf79d03c84028733b0ad5f9bd06a8a13757b (patch) | |
tree | 010c193730931adc1a925ebe6689b39ce4d73012 /src/imap/search.rs | |
parent | 5622a71cd163e4b18a3eabe8a28a5aedb23ee25d (diff) | |
download | aerogramme-4e3cbf79d03c84028733b0ad5f9bd06a8a13757b.tar.gz aerogramme-4e3cbf79d03c84028733b0ad5f9bd06a8a13757b.zip |
implemented text search
Diffstat (limited to 'src/imap/search.rs')
-rw-r--r-- | src/imap/search.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/imap/search.rs b/src/imap/search.rs index 2fbfdcc..fb889d7 100644 --- a/src/imap/search.rs +++ b/src/imap/search.rs @@ -190,7 +190,7 @@ impl<'a> Criteria<'a> { And(expr_list) => expr_list .as_ref() .iter() - .any(|cur| Criteria(cur).is_keep_on_query(mail_view)), + .all(|cur| Criteria(cur).is_keep_on_query(mail_view)), Or(left, right) => { Criteria(left).is_keep_on_query(mail_view) || Criteria(right).is_keep_on_query(mail_view) } @@ -234,8 +234,8 @@ impl<'a> Criteria<'a> { // Filter on the full content of the email - Text(_) => unimplemented!(), - Body(_) => unimplemented!(), + Text(txt) => mail_view.content.as_msg().map(|msg| msg.raw_part.windows(txt.as_ref().len()).any(|win| win == txt.as_ref())).unwrap_or(false), + Body(txt) => mail_view.content.as_msg().map(|msg| msg.raw_body.windows(txt.as_ref().len()).any(|win| win == txt.as_ref())).unwrap_or(false), unknown => { tracing::error!("Unknown filter {:?}", unknown); |