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}