From 7b08bfe13a9ea56b65fdfeb6f93f3c78ee582ae5 Mon Sep 17 00:00:00 2001 From: Jeremiah Russell Date: Wed, 8 Oct 2025 07:53:48 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(retention):=20add=20message=20?= =?UTF-8?q?age=20enum=20creation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - implement `new` function for MessageAge enum - allow creating MessageAge from string period and count --- src/retention/message_age.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/retention/message_age.rs b/src/retention/message_age.rs index 7bfbb54..199090f 100644 --- a/src/retention/message_age.rs +++ b/src/retention/message_age.rs @@ -25,6 +25,17 @@ impl Display for MessageAge { } impl MessageAge { + /// Create a new MessageAge enum + pub fn new(period: &str, count: usize) -> Self { + match period.to_lowercase().as_str() { + "days" => MessageAge::Days(count), + "weeks" => MessageAge::Weeks(count), + "months" => MessageAge::Months(count), + "years" => MessageAge::Years(count), + _ => unreachable!(), + } + } + pub(crate) fn label(&self) -> String { match self { MessageAge::Days(v) => format!("retention/{v}-days"),