package orsetto

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

A submodule containing logic for emitting JSON texts from values of type Cf_type.opaque according to optional mode selectors.

type mode

The mode selectors for emitting JSON texts from opaque values.

val mode : unit -> mode

Use mode () to create a mode selector record for the opaque value emitter. Use any of the various optional parameters to set a mode selector to other than its default value.

No selector modes are defined at present.

val value : ?mode:mode -> unit -> Cf_type.opaque t

Use value () to create an opaque value emitter. The following table describes the runtime type indications required for values emitted.

  • null: Cf_type.Unit
  • boolean: Cf_type.Bool
  • number: Cf_type.Int or Cf_type.Float
  • string: Cf_type.String or Ucs_type.Text
  • array: Cf_type.(Seq Opaque)
  • object: Cf_type.(Seq (Pair (Opaque, Opaque))

Use the ~mode parameter to select modes other than the default. Raises Invalid_argument if the witnessed type is not valid for output as a JSON value.

Note well: the first opaque value of each pair element in an object value must be witness either by Ucs_type.Text or Cf_type.String.

val to_text : ?mode:mode -> Cf_type.opaque -> Ucs_text.t

Use to_text v to format v as a Unicode text. Use ~mode to select the encoding modes. Raises Invalid_argument if v was not witnessed with a type compatible with JSON encoding.