1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/// This is only used for serialize
pub fn is_one(num: &i32) -> bool {
    *num == 1
}

pub fn one() -> i32 { 1 }

pub fn is_one_u32(num: &u32) -> bool {
    *num == 1
}

pub fn one_u32() -> u32 { 1 }

pub fn is_default<T: Default + Eq>(val: &T) -> bool {
    val.eq(&T::default())
}

#[cfg(test)]
mod test {
    use crate::Instance;

    use super::*;

    #[test]
    fn test() {
        assert_eq!(is_default(&0), true);
        assert_eq!(is_default(&1), false);
        assert_eq!(is_default(&false), true);
        assert_eq!(is_default(&true), false);
        let mut ins = Instance::default();
        assert_eq!(is_default(&ins), true);
        ins.para = "hello".to_string();
        assert_eq!(is_default(&ins), false);
    }
}