From 0bc71f5b758ece7e214f39de03841cc4df939419 Mon Sep 17 00:00:00 2001 From: Jeremiah Russell Date: Wed, 15 Oct 2025 11:07:26 +0100 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20refactor:=20rename=20Confi?= =?UTF-8?q?g=20to=20Rules?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - rename Config struct to Rules to better reflect its purpose - update all references to Config to Rules --- src/cli/main.rs | 12 ++++++------ src/cli/rules_cli.rs | 4 ++-- src/cli/rules_cli/config_cli.rs | 4 ++-- src/cli/rules_cli/config_cli/action_cli.rs | 4 ++-- src/cli/rules_cli/config_cli/label_cli.rs | 4 ++-- src/cli/rules_cli/config_cli/label_cli/add_cli.rs | 4 ++-- src/cli/rules_cli/config_cli/label_cli/list_cli.rs | 4 ++-- src/cli/rules_cli/config_cli/label_cli/remove_cli.rs | 4 ++-- src/cli/rules_cli/config_cli/rules_cli.rs | 4 ++-- src/cli/rules_cli/config_cli/rules_cli/add_cli.rs | 4 ++-- src/cli/rules_cli/config_cli/rules_cli/rm_cli.rs | 4 ++-- src/cli/rules_cli/run_cli.rs | 4 ++-- src/gmail_client.rs | 2 +- src/lib.rs | 4 ++-- src/rule_processor.rs | 2 +- src/{config.rs => rules.rs} | 12 ++++++------ src/{config => rules}/eol_rule.rs | 2 +- 17 files changed, 39 insertions(+), 39 deletions(-) rename src/{config.rs => rules.rs} (97%) rename src/{config => rules}/eol_rule.rs (99%) diff --git a/src/cli/main.rs b/src/cli/main.rs index 07cccd9..f9c21ef 100644 --- a/src/cli/main.rs +++ b/src/cli/main.rs @@ -4,7 +4,7 @@ mod labels_cli; mod messages_cli; mod rules_cli; -use cull_gmail::{Config, GmailClient, Result}; +use cull_gmail::{GmailClient, Result, Rules}; use std::error::Error as stdError; use labels_cli::LabelsCli; @@ -86,14 +86,14 @@ fn get_logging(level: log::LevelFilter) -> env_logger::Builder { builder } -fn get_config() -> Result { - match Config::load() { +fn get_config() -> Result { + match Rules::load() { Ok(c) => Ok(c), Err(_) => { log::warn!("Configuration not found, creating default config."); - let config = Config::new(); - config.save()?; - Ok(config) + let rules = Rules::new(); + rules.save()?; + Ok(rules) } } } diff --git a/src/cli/rules_cli.rs b/src/cli/rules_cli.rs index f3adf23..3a476dd 100644 --- a/src/cli/rules_cli.rs +++ b/src/cli/rules_cli.rs @@ -3,7 +3,7 @@ use clap::{Parser, Subcommand}; mod config_cli; mod run_cli; -use cull_gmail::{Config, GmailClient, Result}; +use cull_gmail::{Rules, GmailClient, Result}; use config_cli::ConfigCli; use run_cli::RunCli; @@ -25,7 +25,7 @@ pub struct RulesCli { } impl RulesCli { - pub async fn run(&self, client: &mut GmailClient, config: Config) -> Result<()> { + pub async fn run(&self, client: &mut GmailClient, config: Rules) -> Result<()> { match &self.sub_command { SubCmds::Config(config_cli) => config_cli.run(config), SubCmds::Run(run_cli) => run_cli.run(client, config).await, diff --git a/src/cli/rules_cli/config_cli.rs b/src/cli/rules_cli/config_cli.rs index c022036..e0c596f 100644 --- a/src/cli/rules_cli/config_cli.rs +++ b/src/cli/rules_cli/config_cli.rs @@ -5,7 +5,7 @@ mod label_cli; mod rules_cli; use action_cli::ActionCli; -use cull_gmail::{Config, Result}; +use cull_gmail::{Rules, Result}; use label_cli::LabelCli; use rules_cli::RulesCli; @@ -31,7 +31,7 @@ pub struct ConfigCli { } impl ConfigCli { - pub fn run(&self, config: Config) -> Result<()> { + pub fn run(&self, config: Rules) -> Result<()> { match &self.sub_command { SubCmds::Rules(rules_cli) => rules_cli.run(config), SubCmds::Label(label_cli) => label_cli.run(config), diff --git a/src/cli/rules_cli/config_cli/action_cli.rs b/src/cli/rules_cli/config_cli/action_cli.rs index b9da63a..6e7dde0 100644 --- a/src/cli/rules_cli/config_cli/action_cli.rs +++ b/src/cli/rules_cli/config_cli/action_cli.rs @@ -1,5 +1,5 @@ use clap::{Parser, ValueEnum}; -use cull_gmail::{Config, EolAction, Error, Result}; +use cull_gmail::{Rules, EolAction, Error, Result}; #[derive(Debug, Clone, Parser, ValueEnum)] pub enum Action { @@ -22,7 +22,7 @@ pub struct ActionCli { } impl ActionCli { - pub fn run(&self, mut config: Config) -> Result<()> { + pub fn run(&self, mut config: Rules) -> Result<()> { if config.get_rule(self.id).is_none() { return Err(Error::RuleNotFound(self.id)); } diff --git a/src/cli/rules_cli/config_cli/label_cli.rs b/src/cli/rules_cli/config_cli/label_cli.rs index e774051..ec8cf7d 100644 --- a/src/cli/rules_cli/config_cli/label_cli.rs +++ b/src/cli/rules_cli/config_cli/label_cli.rs @@ -1,5 +1,5 @@ use clap::{Parser, Subcommand}; -use cull_gmail::{Config, Error}; +use cull_gmail::{Rules, Error}; mod add_cli; mod list_cli; @@ -30,7 +30,7 @@ pub struct LabelCli { } impl LabelCli { - pub fn run(&self, config: Config) -> Result<(), Error> { + pub fn run(&self, config: Rules) -> Result<(), Error> { match &self.command { LabelCommands::List(list_cli) => list_cli.run(config), LabelCommands::Add(add_cli) => add_cli.run(config), diff --git a/src/cli/rules_cli/config_cli/label_cli/add_cli.rs b/src/cli/rules_cli/config_cli/label_cli/add_cli.rs index ac74eb9..60af8f5 100644 --- a/src/cli/rules_cli/config_cli/label_cli/add_cli.rs +++ b/src/cli/rules_cli/config_cli/label_cli/add_cli.rs @@ -1,6 +1,6 @@ use clap::Parser; -use cull_gmail::{Config, Error, Result}; +use cull_gmail::{Rules, Error, Result}; #[derive(Debug, Parser)] pub struct AddCli { @@ -13,7 +13,7 @@ pub struct AddCli { } impl AddCli { - pub fn run(&self, mut config: Config) -> Result<()> { + pub fn run(&self, mut config: Rules) -> Result<()> { if config.get_rule(self.id).is_none() { return Err(Error::RuleNotFound(self.id)); } diff --git a/src/cli/rules_cli/config_cli/label_cli/list_cli.rs b/src/cli/rules_cli/config_cli/label_cli/list_cli.rs index b6debb3..30652dd 100644 --- a/src/cli/rules_cli/config_cli/label_cli/list_cli.rs +++ b/src/cli/rules_cli/config_cli/label_cli/list_cli.rs @@ -1,6 +1,6 @@ use clap::Parser; -use cull_gmail::{Config, Error, Result}; +use cull_gmail::{Rules, Error, Result}; #[derive(Debug, Parser)] pub struct ListCli { @@ -10,7 +10,7 @@ pub struct ListCli { } impl ListCli { - pub fn run(&self, config: Config) -> Result<()> { + pub fn run(&self, config: Rules) -> Result<()> { let Some(rule) = config.get_rule(self.id) else { return Err(Error::RuleNotFound(self.id)); }; diff --git a/src/cli/rules_cli/config_cli/label_cli/remove_cli.rs b/src/cli/rules_cli/config_cli/label_cli/remove_cli.rs index c80843e..b7039ba 100644 --- a/src/cli/rules_cli/config_cli/label_cli/remove_cli.rs +++ b/src/cli/rules_cli/config_cli/label_cli/remove_cli.rs @@ -1,6 +1,6 @@ use clap::Parser; -use cull_gmail::{Config, Error, Result}; +use cull_gmail::{Rules, Error, Result}; #[derive(Debug, Parser)] pub struct RemoveCli { @@ -13,7 +13,7 @@ pub struct RemoveCli { } impl RemoveCli { - pub fn run(&self, mut config: Config) -> Result<()> { + pub fn run(&self, mut config: Rules) -> Result<()> { if config.get_rule(self.id).is_none() { return Err(Error::RuleNotFound(self.id)); } diff --git a/src/cli/rules_cli/config_cli/rules_cli.rs b/src/cli/rules_cli/config_cli/rules_cli.rs index 2d00da2..2a278f9 100644 --- a/src/cli/rules_cli/config_cli/rules_cli.rs +++ b/src/cli/rules_cli/config_cli/rules_cli.rs @@ -1,5 +1,5 @@ use clap::{Parser, Subcommand}; -use cull_gmail::{Config, Error}; +use cull_gmail::{Rules, Error}; mod add_cli; mod rm_cli; @@ -28,7 +28,7 @@ pub struct RulesCli { } impl RulesCli { - pub fn run(&self, config: Config) -> Result<(), Error> { + pub fn run(&self, config: Rules) -> Result<(), Error> { match &self.command { RulesCommands::List => config.list_rules(), RulesCommands::Add(add_cli) => add_cli.run(config), diff --git a/src/cli/rules_cli/config_cli/rules_cli/add_cli.rs b/src/cli/rules_cli/config_cli/rules_cli/add_cli.rs index 71daecf..ee40500 100644 --- a/src/cli/rules_cli/config_cli/rules_cli/add_cli.rs +++ b/src/cli/rules_cli/config_cli/rules_cli/add_cli.rs @@ -1,7 +1,7 @@ use std::fmt; use clap::{Parser, ValueEnum}; -use cull_gmail::{Config, Error, MessageAge, Retention}; +use cull_gmail::{Rules, Error, MessageAge, Retention}; #[derive(Debug, Clone, Parser, ValueEnum)] pub enum Period { @@ -39,7 +39,7 @@ pub struct AddCli { } impl AddCli { - pub fn run(&self, mut config: Config) -> Result<(), Error> { + pub fn run(&self, mut config: Rules) -> Result<(), Error> { let generate = self.label.is_none(); let message_age = MessageAge::new(self.period.to_string().as_str(), self.count); let retention = Retention::new(message_age, generate); diff --git a/src/cli/rules_cli/config_cli/rules_cli/rm_cli.rs b/src/cli/rules_cli/config_cli/rules_cli/rm_cli.rs index cac2800..cda68dd 100644 --- a/src/cli/rules_cli/config_cli/rules_cli/rm_cli.rs +++ b/src/cli/rules_cli/config_cli/rules_cli/rm_cli.rs @@ -1,5 +1,5 @@ use clap::Parser; -use cull_gmail::{Config, Error}; +use cull_gmail::{Rules, Error}; #[derive(Debug, Parser)] pub struct RmCli { @@ -12,7 +12,7 @@ pub struct RmCli { } impl RmCli { - pub fn run(&self, mut config: Config) -> Result<(), Error> { + pub fn run(&self, mut config: Rules) -> Result<(), Error> { if self.id.is_none() && self.label.is_none() { return Err(Error::NoRuleSelector); } diff --git a/src/cli/rules_cli/run_cli.rs b/src/cli/rules_cli/run_cli.rs index e06eab2..04a1609 100644 --- a/src/cli/rules_cli/run_cli.rs +++ b/src/cli/rules_cli/run_cli.rs @@ -1,5 +1,5 @@ use clap::Parser; -use cull_gmail::{Config, EolAction, GmailClient, Result, RuleProcessor}; +use cull_gmail::{Rules, EolAction, GmailClient, Result, RuleProcessor}; #[derive(Debug, Parser)] pub struct RunCli { @@ -15,7 +15,7 @@ pub struct RunCli { } impl RunCli { - pub async fn run(&self, client: &mut GmailClient, config: Config) -> Result<()> { + pub async fn run(&self, client: &mut GmailClient, config: Rules) -> Result<()> { let rules = config.get_rules_by_label(); for label in config.labels() { diff --git a/src/gmail_client.rs b/src/gmail_client.rs index e52adff..abe3ad2 100644 --- a/src/gmail_client.rs +++ b/src/gmail_client.rs @@ -14,7 +14,7 @@ mod message_summary; pub(crate) use message_summary::MessageSummary; -use crate::{Credential, Error, Result, config::EolRule}; +use crate::{Credential, Error, Result, rules::EolRule}; /// Default for the maximum number of results to return on a page pub const DEFAULT_MAX_RESULTS: &str = "200"; diff --git a/src/lib.rs b/src/lib.rs index f7819dd..4c85b12 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -4,7 +4,6 @@ #![cfg_attr(docsrs, warn(rustdoc::invalid_codeblock_attributes))] #![doc = include_str!("../docs/lib.md")] -mod config; mod credential; mod eol_action; mod error; @@ -12,16 +11,17 @@ mod gmail_client; mod message_list; mod retention; mod rule_processor; +mod rules; pub(crate) mod utils; pub use gmail_client::DEFAULT_MAX_RESULTS; -pub use config::Config; pub use credential::Credential; pub use gmail_client::GmailClient; pub(crate) use gmail_client::MessageSummary; pub use retention::Retention; +pub use rules::Rules; pub use eol_action::EolAction; pub use error::Error; diff --git a/src/rule_processor.rs b/src/rule_processor.rs index df99117..a509089 100644 --- a/src/rule_processor.rs +++ b/src/rule_processor.rs @@ -1,6 +1,6 @@ use google_gmail1::api::{BatchDeleteMessagesRequest, BatchModifyMessagesRequest}; -use crate::{EolAction, Error, GmailClient, Result, config::EolRule, message_list::MessageList}; +use crate::{EolAction, Error, GmailClient, Result, message_list::MessageList, rules::EolRule}; /// Rules processor to apply the configured rules to the mailbox. pub trait RuleProcessor { diff --git a/src/config.rs b/src/rules.rs similarity index 97% rename from src/config.rs rename to src/rules.rs index 21e519c..7b33e27 100644 --- a/src/config.rs +++ b/src/rules.rs @@ -15,12 +15,12 @@ use crate::{EolAction, Error, MessageAge, Result, Retention}; /// Configuration file for the program #[derive(Debug, Serialize, Deserialize)] -pub struct Config { +pub struct Rules { credentials: Option, rules: BTreeMap, } -impl Default for Config { +impl Default for Rules { fn default() -> Self { let rules = BTreeMap::new(); @@ -38,10 +38,10 @@ impl Default for Config { } } -impl Config { +impl Rules { /// Create a new configuration file pub fn new() -> Self { - Config::default() + Rules::default() } /// Set a name for the credentials file @@ -205,7 +205,7 @@ impl Config { } /// Load the current configuration - pub fn load() -> Result { + pub fn load() -> Result { let home_dir = env::home_dir().unwrap(); let path = PathBuf::new() .join(home_dir) @@ -213,7 +213,7 @@ impl Config { log::trace!("Loading config from {}", path.display()); let input = read_to_string(path)?; - let config = toml::from_str::(&input)?; + let config = toml::from_str::(&input)?; Ok(config) } diff --git a/src/config/eol_rule.rs b/src/rules/eol_rule.rs similarity index 99% rename from src/config/eol_rule.rs rename to src/rules/eol_rule.rs index 8715085..f7f7cbb 100644 --- a/src/config/eol_rule.rs +++ b/src/rules/eol_rule.rs @@ -177,7 +177,7 @@ impl EolRule { mod test { use chrono::{Local, TimeZone}; - use crate::{MessageAge, Retention, config::eol_rule::EolRule}; + use crate::{MessageAge, Retention, rules::eol_rule::EolRule}; fn build_test_rule(age: MessageAge) -> EolRule { let retention = Retention::new(age, true);