MCPcopy Index your code
hub / github.com/ChrisFeldmeier/OpenCodeRust / merge_deep_into

Function merge_deep_into

crates/opencode-provider/src/transform.rs:171–186  ·  view source on GitHub ↗

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>,
)

Source from the content-addressed store, hash-verified

169
170/// Deep-merge `source` into `target`. For nested JSON objects, recurse; otherwise overwrite.
171fn 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

Callers 1

apply_cache_to_messageFunction · 0.85

Calls 2

get_mutMethod · 0.45
cloneMethod · 0.45

Tested by

no test coverage detected