Decoders_jsonm.EncodeStreaming encoding using Jsonm.
Example usage:
module E = Decoders_jsonm.Encode
let run_encoder out_channel (encode : t E.encoder) (x : t) =
let dst = `Channel out_channel in
let encoder = Jsonm.encoder ~minify:true dst in
let env = E.make_env ~encoder () in
E.encode_value encode x envval make_env :
encoder:Jsonm.encoder ->
?on_partial:( unit -> unit ) ->
unit ->
envinclude Decoders.Encode.S with type value = env -> unittype value = env -> unittype 'a encoder = 'a -> valueval string : string encoderval int : int encoderval float : float encoderval bool : bool encoderval null : valueval of_to_string : ( 'a -> string ) -> 'a encoderval encode_string : 'a encoder -> 'a -> stringAssuming we have:
type member
val member : member encoderAnd a type x:
type x =
{ id : string
; members : member list
}An encoder for x might look like this:
let x_encoder x =
object_start >>
name "id" >>
string x.id >>
name "members" >>
array_start >>
iter member x.members >>
array_end >>
object_endval object_start : valueval name : string -> valueval object_end : valueval array_start : valueval array_end : valueval end_ : value