♻️ refactor(config): rename EolCmd to EolAction for clarity

- rename `command` field in `EolRule` to `action`
- update `set_command` method to use `EolAction` enum
- adjust display formatting to reflect the change to "action"
This commit is contained in:
Jeremiah Russell
2025-10-08 12:02:59 +01:00
committed by Jeremiah Russell
parent 68b6cba9c1
commit 5096fd2b19

View File

@@ -2,7 +2,7 @@ use std::fmt;
use serde::{Deserialize, Serialize};
use crate::{Retention, eol_cmd::EolCmd};
use crate::{Retention, eol_cmd::EolAction};
/// End of life rules
#[derive(Debug, Serialize, Deserialize, Default)]
@@ -11,7 +11,7 @@ pub(crate) struct EolRule {
retention: String,
labels: Vec<String>,
query: Option<String>,
command: String,
action: String,
}
impl fmt::Display for EolRule {
@@ -31,9 +31,16 @@ impl fmt::Display for EolRule {
if count > 1 {
period.push('s');
}
let action = match self.action.to_lowercase().as_str() {
"trash" => "moves the message to trash",
"delete" => "deletes the message",
_ => unreachable!(),
};
write!(
f,
"Rule #{} is active on {} and applies when the message is {count} {period} old.",
"Rule #{} is active on {} and {action} is {count} {period} old.",
self.id,
self.labels.join(", ")
)
@@ -47,7 +54,7 @@ impl EolRule {
pub(crate) fn new(id: usize) -> Self {
EolRule {
id,
command: EolCmd::Trash.to_string(),
action: EolAction::Trash.to_string(),
..Default::default()
}
}
@@ -76,6 +83,11 @@ impl EolRule {
pub(crate) fn labels(&self) -> &Vec<String> {
&self.labels
}
pub(crate) fn set_command(&mut self, value: EolAction) -> &mut Self {
self.action = value.to_string();
self
}
}
#[cfg(test)]