Deep-merge `source` into `target`. For nested JSON objects, recurse; otherwise overwrite.
(
target: &mut HashMap<String, serde_json::Value>,
source: &HashMap<String, serde_json::Value>,
)
| 169 | |
| 170 | /// Deep-merge `source` into `target`. For nested JSON objects, recurse; otherwise overwrite. |
| 171 | fn merge_deep_into( |
| 172 | target: &mut HashMap<String, serde_json::Value>, |
| 173 | source: &HashMap<String, serde_json::Value>, |
| 174 | ) { |
| 175 | for (k, v) in source { |
| 176 | if let Some(existing) = target.get_mut(k) { |
| 177 | if let (Some(existing_obj), Some(new_obj)) = (existing.as_object_mut(), v.as_object()) { |
| 178 | for (nk, nv) in new_obj { |
| 179 | existing_obj.insert(nk.clone(), nv.clone()); |
| 180 | } |
| 181 | continue; |
| 182 | } |
| 183 | } |
| 184 | target.insert(k.clone(), v.clone()); |
| 185 | } |
| 186 | } |
| 187 | |
| 188 | // --------------------------------------------------------------------------- |
| 189 | // normalize_messages_for_caching |
no test coverage detected