#[cfg(test)]
mod tests {
use serde_skip::*;
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize, PartialEq, Clone, Default)]
struct TestNums {
#[serde(skip_serializing_if = "is_default", default)]
a: i8,
#[serde(skip_serializing_if = "is_default", default)]
b: i32,
#[serde(skip_serializing_if = "is_default", default)]
c: i128,
#[serde(skip_serializing_if = "is_default", default)]
d: f32,
#[serde(skip_serializing_if = "is_default", default)]
e: f64,
}
#[test]
fn is_default_on_numbers() {
let empty_struct = TestNums::default();
assert_eq!("{}", &serde_json::to_string(&empty_struct).unwrap());
let b_is_nine = {
let mut t = TestNums::default();
t.b = 9;
t
};
assert_eq!("{\"b\":9}", &serde_json::to_string(&b_is_nine).unwrap());
let e_is_pi = {
let mut t = TestNums::default();
t.e = std::f64::consts::PI;
t
};
assert_eq!("{\"e\":3.141592653589793}", &serde_json::to_string(&e_is_pi).unwrap());
}
}