pipebase/common/filter.rs
1/// Filter object itself
2pub trait Filter<Rhs = Self> {
3 fn filter(rhs: &Rhs) -> bool;
4}
5
6#[cfg(test)]
7mod tests {
8
9 use crate::prelude::*;
10
11 #[derive(Clone, Debug, Filter)]
12 #[filter(alias = "r", predicate = "r.r0 + r.r1 < 1")]
13 struct Record {
14 pub r0: i32,
15 pub r1: i32,
16 }
17
18 #[test]
19 fn test_filter() {
20 let mut r = Record { r0: 1, r1: 1 };
21 assert!(!Record::filter(&r));
22 r.r0 = 0;
23 r.r1 = 0;
24 assert!(Record::filter(&r));
25 }
26}