def merge

cswap-bend-cli@0.1.0.0 · setimp.bend:377

import cswap-bend-cli@0.1.0.0/setimp.bend as Setimp
import Base
import cswap-bend-cli@0.1.0.0/json.bend as Json

377# `over` laid on `base`: objects merge key by key, anything else replaces, and
378# null removes the key.
379def merge(over: Json.Json, +base: Json.Json) -> Json.Json:
380  match over:
381    case Json.JObj{f}:
382      merge(f, base)
383    case Json.JField{+k, +v, t}:
384      merge(t, put(k, v, base, merge(v, or_null(Json.get(k, base)))))
385    case Json.JNil{}:
386      base
387    case _:
388      over

Uses (4)

Used by (1)