use serde_json::Value;
pub fn deep_merge(target: &mut Value, source: Value) {
match (target, source) {
(Value::Object(target_map), Value::Object(source_map)) => {
for (key, value) in source_map {
deep_merge(target_map.entry(key).or_insert(Value::Null), value);
}
}
(Value::Array(target_vec), Value::Array(source_vec)) => {
target_vec.extend(source_vec);
}
(target, source) => {
*target = source;
}
}
}