Skip to main content

merge_tapes

Function merge_tapes 

Source
pub fn merge_tapes<S: TapeSource, T: TapeSource>(
    base: &S,
    overlay: &T,
) -> Result<Value>
Expand description

Merge two tapes using RFC 7396 (JSON Merge Patch) semantics

The overlay tape’s values take precedence:

  • null values in overlay delete keys from target
  • Objects are recursively merged
  • Non-objects replace existing values

§Example

let base = parse_yaml("name: Alice\nage: 30");
let overlay = parse_json(r#"{"name": "Bob", "city": "NYC"}"#);

let result = merge_tapes(&base, &overlay)?;
// {"name": "Bob", "age": 30, "city": "NYC"}

§Errors

Returns an error if either tape cannot be converted to a value.