1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
use serde_json::Value;

// https://github.com/serde-rs/json/issues/377
pub fn merge(a: &mut Value, b: &Value) {
	match (a, b) {
		(&mut Value::Object(ref mut a), &Value::Object(ref b)) => {
			for (k, v) in b {
				merge(a.entry(k.clone()).or_insert(Value::Null), v);
			}
		}
		(a, b) => {
			*a = b.clone();
		}
	}
}