Skip to main content

systemprompt_logging/models/
log_filter.rs

1#[derive(Debug, Clone, Default)]
2pub struct LogFilter {
3    page: i32,
4    per_page: i32,
5    level: Option<String>,
6    module: Option<String>,
7    message: Option<String>,
8}
9
10impl LogFilter {
11    #[must_use]
12    pub const fn new(page: i32, per_page: i32) -> Self {
13        Self {
14            page,
15            per_page,
16            level: None,
17            module: None,
18            message: None,
19        }
20    }
21
22    #[must_use]
23    pub fn with_level(mut self, level: impl Into<String>) -> Self {
24        self.level = Some(level.into());
25        self
26    }
27
28    #[must_use]
29    pub fn with_module(mut self, module: impl Into<String>) -> Self {
30        self.module = Some(module.into());
31        self
32    }
33
34    #[must_use]
35    pub fn with_message(mut self, message: impl Into<String>) -> Self {
36        self.message = Some(message.into());
37        self
38    }
39
40    #[must_use]
41    pub const fn page(&self) -> i32 {
42        self.page
43    }
44
45    #[must_use]
46    pub const fn per_page(&self) -> i32 {
47        self.per_page
48    }
49
50    #[must_use]
51    pub fn level(&self) -> Option<&str> {
52        self.level.as_deref()
53    }
54
55    #[must_use]
56    pub fn module(&self) -> Option<&str> {
57        self.module.as_deref()
58    }
59
60    #[must_use]
61    pub fn message(&self) -> Option<&str> {
62        self.message.as_deref()
63    }
64}