bep/
json_utils.rs

1pub fn merge(a: serde_json::Value, b: serde_json::Value) -> serde_json::Value {
2    match (a, b) {
3        (serde_json::Value::Object(mut a_map), serde_json::Value::Object(b_map)) => {
4            b_map.into_iter().for_each(|(key, value)| {
5                a_map.insert(key, value);
6            });
7            serde_json::Value::Object(a_map)
8        }
9        (a, _) => a,
10    }
11}
12
13pub fn merge_inplace(a: &mut serde_json::Value, b: serde_json::Value) {
14    if let (serde_json::Value::Object(a_map), serde_json::Value::Object(b_map)) = (a, b) {
15        b_map.into_iter().for_each(|(key, value)| {
16            a_map.insert(key, value);
17        });
18    }
19}