1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
module Ezjsonm_encodeable = struct
type value = Ezjsonm.value
let to_string = function
| `Null ->
"null"
| `Bool bool ->
string_of_bool bool
| `Float float ->
string_of_float float
| `String string ->
Printf.sprintf "%S" string
| (`A _ | `O _) as json ->
Ezjsonm.(to_string json)
let of_string x = `String x
let of_int x = `Float (float_of_int x)
let of_float x = `Float x
let of_bool x = `Bool x
let null = `Null
let of_list xs = `A xs
let of_key_value_pairs xs =
`O
( xs
|> Decoders.Util.My_list.filter_map (fun (k, v) ->
match k with `String k -> Some (k, v) | _ -> None ) )
end
include Decoders.Encode.Make (Ezjsonm_encodeable)