✨ feat(retention): introduce message age enum
- add MessageAge enum to represent retention periods in days, weeks, months, or years - implement Display trait for MessageAge to format retention periods - implement label function to generate retention label
This commit is contained in:
committed by
Jeremiah Russell
parent
e77b372413
commit
17dc58c4a7
36
src/retention/message_age.rs
Normal file
36
src/retention/message_age.rs
Normal file
@@ -0,0 +1,36 @@
|
||||
use std::fmt::Display;
|
||||
|
||||
/// Message age
|
||||
#[derive(Debug)]
|
||||
pub enum MessageAge {
|
||||
/// Number of days to retain the message
|
||||
Days(usize),
|
||||
/// Number of weeks to retain the message
|
||||
Weeks(usize),
|
||||
/// Number of months to retain the message
|
||||
Months(usize),
|
||||
/// Number of years to retain the message
|
||||
Years(usize),
|
||||
}
|
||||
|
||||
impl Display for MessageAge {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
match self {
|
||||
MessageAge::Days(v) => write!(f, "d:{v}"),
|
||||
MessageAge::Weeks(v) => write!(f, "w:{v}"),
|
||||
MessageAge::Months(v) => write!(f, "m:{v}"),
|
||||
MessageAge::Years(v) => write!(f, "y:{v}"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl MessageAge {
|
||||
pub(crate) fn label(&self) -> String {
|
||||
match self {
|
||||
MessageAge::Days(v) => format!("retention/{v}-days"),
|
||||
MessageAge::Weeks(v) => format!("retention/:{v}-weeks"),
|
||||
MessageAge::Months(v) => format!("retention/:{v}-months"),
|
||||
MessageAge::Years(v) => format!("retention/:{v}-years"),
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user