ignore/
ignore.rs

1extern crate serde_filter;
2extern crate serde_json;
3use serde_filter::prelude::*;
4use serde_json::json;
5
6fn main() {
7    let json = json!(
8        {
9            "explanation": "test",
10            "media_type": "test",
11            "hdurl": "test",
12            "service_version": "test",
13            "code": 200,
14            "msg": "test"
15        }
16    );
17    let values = filter::<Ignore>(json, &Ignore::new(vec!["explanation", "media_type"]));
18    if let Ok(trimmed) = values {
19        println!("TRIMMED: {:#?}", trimmed);
20        assert!(trimmed.get("explanation").is_none());
21        assert!(trimmed.get("media_type").is_none());
22        assert!(trimmed.get("hdurl").is_some());
23    } else {
24        panic!();
25    }
26
27    let json = json!({
28        "2020-01-01": {
29            "explanation": "test_1",
30            "media_type": "test",
31            "hdurl": "test",
32            "service_version": "test",
33            "code": 200,
34            "msg": "test"
35        },
36        "Object": {
37            "2023-01-11": {
38                "Object": {
39                    "explanation": "test_3",
40                    "media_type": "test",
41                    "hdurl": "test",
42                    "service_version": "test",
43                    "code": 200,
44                    "msg": "test"
45                },
46                "explanation": "test_2",
47            }
48        },
49        "explanation": "test_0"
50    });
51
52    let ignore = Ignore::new(vec!["explanation"]);
53    let trimmed = filter::<Ignore>(json, &ignore).unwrap();
54    println!("TRIMMED: {:#?}", trimmed);
55    assert!(trimmed["2020-01-01"].get("explanation").is_none(), "test_1");
56    assert!(
57        trimmed["Object"]["2023-01-11"]["Object"]
58            .get("explanation")
59            .is_none(),
60        "test_3"
61    );
62    assert!(
63        trimmed["Object"]["2023-01-11"].get("explanation").is_none(),
64        "test_2"
65    );
66    assert!(trimmed.get("explanation").is_none(), "test_0");
67}