package decoders-jsonm

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

Module Decoders_jsonm.EncodeSource

Streaming 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 env
Sourcetype env
Sourceval make_env : encoder:Jsonm.encoder -> ?on_partial:(unit -> unit) -> unit -> env
include Decoders.Encode.S with type value = env -> unit
Sourcetype value = env -> unit
Sourcetype 'a encoder = 'a -> value
Sourceval string : string encoder
Sourceval int : int encoder
Sourceval float : float encoder
Sourceval bool : bool encoder
Sourceval null : value
Sourceval nullable : 'a encoder -> 'a option encoder
Sourceval option : 'a encoder -> 'a option encoder
  • deprecated Use nullable instead.
Sourceval list : 'a encoder -> 'a list encoder
Sourceval array : 'a encoder -> 'a array encoder
Sourceval obj : (string * value) list encoder
Sourceval obj' : (value * value) list encoder
Sourceval value : value encoder
Sourceval of_to_string : ('a -> string) -> 'a encoder
Sourceval encode_value : 'a encoder -> 'a -> value
Sourceval encode_string : 'a encoder -> 'a -> string

Low-level combinators

Assuming we have:

  type member
  val member : member encoder

And 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_end
Sourceval (>>) : value -> value -> value
Sourceval iter : 'a encoder -> 'a list -> value
Sourceval object_start : value
Sourceval name : string -> value
Sourceval object_end : value
Sourceval array_start : value
Sourceval array_end : value
Sourceval end_ : value
OCaml

Innovation. Community. Security.