package oxbow

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Source file json_slots.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
let fields : Yojson.Safe.t -> _ = function
  | `Assoc l -> l
  | _ -> invalid_arg "Json_slots: not a record"
;;

let empty t_of = t_of (`Assoc [])
let is_empty yojson_of v = yojson_of v = `Assoc []

let merge yojson_of t_of ~old ~new_ =
  let news = fields (yojson_of new_) in
  let keep (k, _) = not @@ List.mem_assoc k news in
  t_of (`Assoc (List.filter keep (fields (yojson_of old)) @ news))
;;