✨ feat(config): add EolRule struct for managing end-of-life rules
- introduce EolRule struct with fields for id, retention, labels, query, and command - implement methods for creating new rules, setting retention, and adding labels - add default implementation for EolRule
This commit is contained in:
committed by
Jeremiah Russell
parent
f63a0f888d
commit
e77b372413
40
src/config/eol_rule.rs
Normal file
40
src/config/eol_rule.rs
Normal file
@@ -0,0 +1,40 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::{Retention, eol_cmd::EolCmd};
|
||||
|
||||
/// End of life rules
|
||||
#[derive(Debug, Serialize, Deserialize, Default)]
|
||||
pub(crate) struct EolRule {
|
||||
id: usize,
|
||||
retention: String,
|
||||
labels: Vec<String>,
|
||||
query: Option<String>,
|
||||
command: String,
|
||||
}
|
||||
|
||||
impl EolRule {
|
||||
pub(crate) fn new(id: usize) -> Self {
|
||||
EolRule {
|
||||
id,
|
||||
command: EolCmd::Trash.to_string(),
|
||||
..Default::default()
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn set_retention(&mut self, value: Retention) -> &mut Self {
|
||||
self.retention = value.age().to_string();
|
||||
if value.generate_label() {
|
||||
self.add_label(&value.age().label());
|
||||
}
|
||||
self
|
||||
}
|
||||
|
||||
pub(crate) fn add_label(&mut self, value: &str) -> &mut Self {
|
||||
self.labels.push(value.to_string());
|
||||
self
|
||||
}
|
||||
|
||||
pub(crate) fn id(&self) -> usize {
|
||||
self.id
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user