package decoders-jsonm

  1. Overview
  2. Docs
Jsonm backend for decoders

Install

Dune Dependency

Authors

Maintainers

Sources

decoders-1.0.0.tbz
sha256=47fe79c4102d0f710eff3ceaef313100d9df3c7945834d3cf38a39742a573597
sha512=6fe4e9f99d865fb24c8b1da08ba485282fc8eaf6ed48cedbe8109cae863ad441a95b2643b4ea217a6b012f149682ca69af436ed26a3d646903738fce5651a229

doc/decoders-jsonm/Decoders_jsonm/Encode/index.html

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.