use super::Middleware;
-/// `MailDrop` can't find folders to sync because it implements IMAPv3 and
-/// sends FIND MAILBOXES /*, which does not exist in IMAPv4.
+/// `MailDrop` can't find folders to sync because it implements `IMAPv3` and
+/// sends FIND MAILBOXES /*, which does not exist in `IMAPv4`.
/// which is not understood by modern servers. It instead replaces it with
/// a LIST command.
pub struct FindMailboxesCompatibility {
let contains_ok_completed = self
.tags
.iter()
- .any(|tag| command.contains(&format!("{} OK Completed", tag)));
+ .any(|tag| command.contains(&format!("{tag} OK Completed")));
// We want to only modify responses that were a result of a MAILBOX call.
if !contains_ok_completed {
if line.starts_with("* LIST") {
if let Some(last_slash_pos) = line.rfind('/') {
let mailbox_name = line[(last_slash_pos + 1)..].trim();
- return Some(format!("* MAILBOX {}\r", mailbox_name));
+ return Some(format!("* MAILBOX {mailbox_name}\r"));
}
}
- return Some(line.to_string());
+ Some(line.to_string())
})
.collect();
- return lines.join("\n").into_bytes();
+ lines.join("\n").into_bytes()
}
}
fn server_message(&mut self, input: &[u8]) -> Vec<u8>;
}
-pub fn get_middleware() -> Arc<Mutex<Vec<Box<dyn Middleware>>>> {
+pub fn get() -> Arc<Mutex<Vec<Box<dyn Middleware>>>> {
Arc::new(Mutex::new(vec![
Box::new(FindMailboxesCompatibility::new()),
]))
use std::time::Duration;
use crate::configuration::Proxy;
-use crate::middleware::get_middleware;
+use crate::middleware::get as get_middleware;
/// A proxy server that listens for plaintext connections and forwards them
/// via TLS.