✨ feat(cli): create message trait to share list parameters
- create message trait to share list parameters - implement message trait for message and delete cli
This commit is contained in:
committed by
Jeremiah Russell
parent
e488cd25cf
commit
7b9be5f243
43
src/cli/message_trait.rs
Normal file
43
src/cli/message_trait.rs
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
use cull_gmail::{GmailClient, MessageList, Result};
|
||||||
|
|
||||||
|
use crate::{delete_cli::DeleteCli, message_cli::MessageCli};
|
||||||
|
|
||||||
|
pub trait Message {
|
||||||
|
fn set_parameters(&self, client: &mut GmailClient) -> Result<()>;
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Message for MessageCli {
|
||||||
|
fn set_parameters(&self, client: &mut GmailClient) -> Result<()> {
|
||||||
|
if !self.labels().is_empty() {
|
||||||
|
client.add_labels(self.labels())?;
|
||||||
|
}
|
||||||
|
|
||||||
|
if let Some(query) = self.query().as_ref() {
|
||||||
|
client.set_query(query)
|
||||||
|
}
|
||||||
|
|
||||||
|
log::trace!("Max results: `{}`", self.max_results());
|
||||||
|
client.set_max_results(self.max_results());
|
||||||
|
log::debug!("List max results set to {}", client.max_results());
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Message for DeleteCli {
|
||||||
|
fn set_parameters(&self, client: &mut GmailClient) -> Result<()> {
|
||||||
|
if !self.labels().is_empty() {
|
||||||
|
client.add_labels(self.labels())?;
|
||||||
|
}
|
||||||
|
|
||||||
|
if let Some(query) = self.query().as_ref() {
|
||||||
|
client.set_query(query)
|
||||||
|
}
|
||||||
|
|
||||||
|
log::trace!("Max results: `{}`", self.max_results());
|
||||||
|
client.set_max_results(self.max_results());
|
||||||
|
log::debug!("List max results set to {}", client.max_results());
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user