aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/imap/command/authenticated.rs4
-rw-r--r--src/imap/command/selected.rs5
-rw-r--r--src/imap/mailbox_view.rs19
-rw-r--r--src/mail/user.rs6
-rw-r--r--tests/behavior.rs1
5 files changed, 23 insertions, 12 deletions
diff --git a/src/imap/command/authenticated.rs b/src/imap/command/authenticated.rs
index c5f2d00..60872ae 100644
--- a/src/imap/command/authenticated.rs
+++ b/src/imap/command/authenticated.rs
@@ -235,9 +235,7 @@ impl<'a> AuthenticatedContext<'a> {
.to_string()
.try_into()
.map_err(|_| anyhow!("invalid mailbox name"))?;
- let mut items = vec![FlagNameAttribute::from(Atom::unvalidated(
- "Subscribed",
- ))];
+ let mut items = vec![FlagNameAttribute::from(Atom::unvalidated("Subscribed"))];
if !*is_real {
items.push(FlagNameAttribute::Noselect);
} else {
diff --git a/src/imap/command/selected.rs b/src/imap/command/selected.rs
index 154e28c..73f8aec 100644
--- a/src/imap/command/selected.rs
+++ b/src/imap/command/selected.rs
@@ -226,7 +226,10 @@ impl<'a> SelectedContext<'a> {
))
}
- async fn expunge(self, uid_sequence_set: &Option<SequenceSet>) -> Result<(Response<'static>, flow::Transition)> {
+ async fn expunge(
+ self,
+ uid_sequence_set: &Option<SequenceSet>,
+ ) -> Result<(Response<'static>, flow::Transition)> {
if let Some(failed) = self.fail_read_only() {
return Ok((failed, flow::Transition::None));
}
diff --git a/src/imap/mailbox_view.rs b/src/imap/mailbox_view.rs
index f632df1..d57e9a3 100644
--- a/src/imap/mailbox_view.rs
+++ b/src/imap/mailbox_view.rs
@@ -237,20 +237,29 @@ impl MailboxView {
self.update(UpdateParameters::default()).await
}
- pub async fn expunge(&mut self, maybe_seq_set: &Option<SequenceSet>) -> Result<Vec<Body<'static>>> {
+ pub async fn expunge(
+ &mut self,
+ maybe_seq_set: &Option<SequenceSet>,
+ ) -> Result<Vec<Body<'static>>> {
// Get a recent view to apply our change
self.internal.sync().await?;
let state = self.internal.peek().await;
let idx = Index::new(&state)?;
-
+
// Build a default sequence set for the default case
- use imap_codec::imap_types::sequence::{Sequence, SeqOrUid};
+ use imap_codec::imap_types::sequence::{SeqOrUid, Sequence};
let seq = match maybe_seq_set {
Some(s) => s.clone(),
- None => SequenceSet(vec![Sequence::Range(SeqOrUid::Value(NonZeroU32::MIN), SeqOrUid::Asterisk)].try_into().unwrap()),
+ None => SequenceSet(
+ vec![Sequence::Range(
+ SeqOrUid::Value(NonZeroU32::MIN),
+ SeqOrUid::Asterisk,
+ )]
+ .try_into()
+ .unwrap(),
+ ),
};
-
let deleted_flag = Flag::Deleted.to_string();
let msgs = idx
.fetch_on_uid(&seq)
diff --git a/src/mail/user.rs b/src/mail/user.rs
index 4767a93..ad05615 100644
--- a/src/mail/user.rs
+++ b/src/mail/user.rs
@@ -269,10 +269,12 @@ impl User {
}
};
- let is_default_mbx_missing = [ DRAFTS, ARCHIVE, SENT, TRASH ]
+ let is_default_mbx_missing = [DRAFTS, ARCHIVE, SENT, TRASH]
.iter()
.map(|mbx| list.create_mailbox(mbx))
- .fold(false, |acc, r| acc || matches!(r, CreatedMailbox::Created(..)));
+ .fold(false, |acc, r| {
+ acc || matches!(r, CreatedMailbox::Created(..))
+ });
let is_inbox_missing = self.ensure_inbox_exists(&mut list, &row).await?;
if is_default_mbx_missing && !is_inbox_missing {
// It's the only case where we created some mailboxes and not saved them
diff --git a/tests/behavior.rs b/tests/behavior.rs
index 2e3c610..a6dc78d 100644
--- a/tests/behavior.rs
+++ b/tests/behavior.rs
@@ -241,7 +241,6 @@ fn rfc4551_imapext_condstore() {
.expect("test fully run");
}
-
fn rfc2177_imapext_idle() {
println!("🧪 rfc2177_imapext_idle");
common::aerogramme_provider_daemon_dev(|imap_socket, lmtp_socket| {