From 9d8d3e09f4ca7f10f7fdcddad9edbb30a73250a3 Mon Sep 17 00:00:00 2001 From: Manos Pitsidianakis Date: Fri, 6 Dec 2019 10:03:01 +0200 Subject: [PATCH] melib: remove unused methods from BackendOp --- melib/src/backends.rs | 14 ---- melib/src/backends/imap/operations.rs | 104 -------------------------- melib/src/backends/maildir.rs | 11 --- melib/src/backends/mbox.rs | 12 --- melib/src/backends/notmuch.rs | 12 --- melib/src/email.rs | 4 - 6 files changed, 157 deletions(-) diff --git a/melib/src/backends.rs b/melib/src/backends.rs index 2aea2917a..a72a3e35c 100644 --- a/melib/src/backends.rs +++ b/melib/src/backends.rs @@ -273,12 +273,6 @@ pub trait MailBackend: ::std::fmt::Debug + Send + Sync { /// fn as_bytes(&mut self) -> Result<&[u8]> { /// unimplemented!() /// } -/// fn fetch_headers(&mut self) -> Result<&[u8]> { -/// unimplemented!() -/// } -/// fn fetch_body(&mut self) -> Result<&[u8]> { -/// unimplemented!() -/// } /// fn fetch_flags(&self) -> Flag { /// unimplemented!() /// } @@ -292,8 +286,6 @@ pub trait BackendOp: ::std::fmt::Debug + ::std::marker::Send { fn as_bytes(&mut self) -> Result<&[u8]>; //fn delete(&self) -> (); //fn copy(&self - fn fetch_headers(&mut self) -> Result<&[u8]>; - fn fetch_body(&mut self) -> Result<&[u8]>; fn fetch_flags(&self) -> Flag; fn set_flag(&mut self, envelope: &mut Envelope, flag: Flag, value: bool) -> Result<()>; } @@ -320,12 +312,6 @@ impl BackendOp for ReadOnlyOp { fn as_bytes(&mut self) -> Result<&[u8]> { self.op.as_bytes() } - fn fetch_headers(&mut self) -> Result<&[u8]> { - self.op.fetch_headers() - } - fn fetch_body(&mut self) -> Result<&[u8]> { - self.op.fetch_body() - } fn fetch_flags(&self) -> Flag { self.op.fetch_flags() } diff --git a/melib/src/backends/imap/operations.rs b/melib/src/backends/imap/operations.rs index fe32b2431..ed7b43f0e 100644 --- a/melib/src/backends/imap/operations.rs +++ b/melib/src/backends/imap/operations.rs @@ -115,110 +115,6 @@ impl BackendOp for ImapOp { Ok(self.bytes.as_ref().unwrap().as_bytes()) } - fn fetch_headers(&mut self) -> Result<&[u8]> { - if self.bytes.is_some() { - let result = - parser::headers_raw(self.bytes.as_ref().unwrap().as_bytes()).to_full_result()?; - return Ok(result); - } - if self.headers.is_none() { - let mut bytes_cache = self.uid_store.byte_cache.lock()?; - let cache = bytes_cache.entry(self.uid).or_default(); - if cache.headers.is_some() { - self.headers = cache.headers.clone(); - } else { - let mut response = String::with_capacity(8 * 1024); - let mut conn = self.connection.lock().unwrap(); - conn.send_command( - format!("UID FETCH {} (FLAGS RFC822.HEADER)", self.uid).as_bytes(), - )?; - conn.read_response(&mut response)?; - debug!( - "fetch response is {} bytes and {} lines", - response.len(), - response.lines().collect::>().len() - ); - match protocol_parser::uid_fetch_response(response.as_bytes()) - .to_full_result() - .map_err(MeliError::from) - { - Ok(v) => { - if v.len() != 1 { - debug!("responses len is {}", v.len()); - /* TODO: Trigger cache invalidation here. */ - return Err(MeliError::new(format!( - "message with UID {} was not found", - self.uid - ))); - } - let (uid, flags, b) = v[0]; - assert_eq!(uid, self.uid); - if flags.is_some() { - self.flags.set(flags); - cache.flags = flags; - } - cache.headers = - Some(unsafe { std::str::from_utf8_unchecked(b).to_string() }); - } - Err(e) => return Err(e), - } - self.headers = cache.headers.clone(); - } - } - Ok(self.headers.as_ref().unwrap().as_bytes()) - } - - fn fetch_body(&mut self) -> Result<&[u8]> { - if self.bytes.is_some() { - let result = - parser::body_raw(self.bytes.as_ref().unwrap().as_bytes()).to_full_result()?; - return Ok(result); - } - if self.body.is_none() { - let mut bytes_cache = self.uid_store.byte_cache.lock()?; - let cache = bytes_cache.entry(self.uid).or_default(); - if cache.body.is_some() { - self.body = cache.body.clone(); - } else { - let mut response = String::with_capacity(8 * 1024); - let mut conn = self.connection.lock().unwrap(); - conn.send_command( - format!("UID FETCH {} (FLAGS RFC822.TEXT)", self.uid).as_bytes(), - )?; - conn.read_response(&mut response)?; - debug!( - "fetch response is {} bytes and {} lines", - response.len(), - response.lines().collect::>().len() - ); - match protocol_parser::uid_fetch_response(response.as_bytes()) - .to_full_result() - .map_err(MeliError::from) - { - Ok(v) => { - if v.len() != 1 { - debug!("responses len is {}", v.len()); - /* TODO: Trigger cache invalidation here. */ - return Err(MeliError::new(format!( - "message with UID {} was not found", - self.uid - ))); - } - let (uid, flags, b) = v[0]; - assert_eq!(uid, self.uid); - if flags.is_some() { - self.flags.set(flags); - } - cache.body = Some(unsafe { std::str::from_utf8_unchecked(b).to_string() }); - } - Err(e) => return Err(e), - } - self.body = cache.body.clone(); - } - } - Ok(self.body.as_ref().unwrap().as_bytes()) - } - fn fetch_flags(&self) -> Flag { if self.flags.get().is_some() { return self.flags.get().unwrap(); diff --git a/melib/src/backends/maildir.rs b/melib/src/backends/maildir.rs index a208efc98..4c939149f 100644 --- a/melib/src/backends/maildir.rs +++ b/melib/src/backends/maildir.rs @@ -24,7 +24,6 @@ mod backend; pub use self::backend::*; use crate::backends::*; -use crate::email::parser; use crate::email::{Envelope, Flag}; use crate::error::{MeliError, Result}; use crate::shellexpand::ShellExpandTrait; @@ -96,16 +95,6 @@ impl<'a> BackendOp for MaildirOp { /* Unwrap is safe since we use ? above. */ Ok(unsafe { self.slice.as_ref().unwrap().as_slice() }) } - fn fetch_headers(&mut self) -> Result<&[u8]> { - let raw = self.as_bytes()?; - let result = parser::headers_raw(raw).to_full_result()?; - Ok(result) - } - fn fetch_body(&mut self) -> Result<&[u8]> { - let raw = self.as_bytes()?; - let result = parser::body_raw(raw).to_full_result()?; - Ok(result) - } fn fetch_flags(&self) -> Flag { let mut flag = Flag::default(); let path = self.path(); diff --git a/melib/src/backends/mbox.rs b/melib/src/backends/mbox.rs index 48afd853a..22e7f4b50 100644 --- a/melib/src/backends/mbox.rs +++ b/melib/src/backends/mbox.rs @@ -170,18 +170,6 @@ impl BackendOp for MboxOp { }) } - fn fetch_headers(&mut self) -> Result<&[u8]> { - let raw = self.as_bytes()?; - let result = parser::headers_raw(raw).to_full_result()?; - Ok(result) - } - - fn fetch_body(&mut self) -> Result<&[u8]> { - let raw = self.as_bytes()?; - let result = parser::body_raw(raw).to_full_result()?; - Ok(result) - } - fn fetch_flags(&self) -> Flag { let mut flags = Flag::empty(); let file = match std::fs::OpenOptions::new() diff --git a/melib/src/backends/notmuch.rs b/melib/src/backends/notmuch.rs index 6c73600bf..dced8b7b1 100644 --- a/melib/src/backends/notmuch.rs +++ b/melib/src/backends/notmuch.rs @@ -428,18 +428,6 @@ impl BackendOp for NotmuchOp { Ok(self.bytes.as_ref().unwrap().as_bytes()) } - fn fetch_headers(&mut self) -> Result<&[u8]> { - let raw = self.as_bytes()?; - let result = crate::email::parser::headers_raw(raw).to_full_result()?; - Ok(result) - } - - fn fetch_body(&mut self) -> Result<&[u8]> { - let raw = self.as_bytes()?; - let result = crate::email::parser::body_raw(raw).to_full_result()?; - Ok(result) - } - fn fetch_flags(&self) -> Flag { let mut flag = Flag::default(); let path = self.index.read().unwrap()[&self.hash].to_str().unwrap(); diff --git a/melib/src/email.rs b/melib/src/email.rs index 6fa261bd6..3ede0a60b 100644 --- a/melib/src/email.rs +++ b/melib/src/email.rs @@ -338,10 +338,6 @@ impl Envelope { Ok(()) } - pub fn populate_headers_from_token(&mut self, mut operation: Box) -> Result<()> { - let headers = operation.fetch_headers()?; - self.populate_headers(headers) - } pub fn date(&self) -> UnixTimestamp { self.timestamp }