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}