egui_table_kit/filter/
mod.rs1pub mod highlight;
4pub mod search;
5
6#[derive(Clone, Debug, Default, serde::Serialize, serde::Deserialize)]
8pub struct Filter {
9 pub search: search::Search,
10 pub highlight: Option<Option<u8>>,
11}
12
13impl Filter {
14 #[must_use]
16 pub fn matches(&self, text: &str, row_highlight: Option<u8>) -> bool {
17 if let Some(req_highlight) = self.highlight
18 && row_highlight != req_highlight
19 {
20 return false;
21 }
22 self.search.is_match(text)
23 }
24
25 #[must_use]
27 pub const fn is_empty(&self) -> bool {
28 !self.search.is_active() && self.highlight.is_none()
29 }
30}