package yocaml
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=cfc7c139116d6881b1d0bc7af706b8f8ceb6cd1f5be67d621944388731ab9d6c
sha512=9d1a075a6a9d3c8bae9ae4e389ada0a5b7818b3993ef9dd45af65070434b86bb56c349db5d0149134d449495415c28e2bfca993a20d5e4b7d16263f7231334c3
doc/yocaml/Yocaml/Data/index.html
Module Yocaml.Data
Source
Describes an mostly compatible Ezjsonm AST that acts as a generic AST for describing metadata that can be exchanged between source documents and templates. To summarise, source metadata is ultimately projected into a value of type Yocaml.Data.t
and data injected into templates is projected from values of type Yocaml.Data.t
.
To be generic, you need to provide a module capable of transforming the AST of arbitrary metadata (for example, Yaml
) into a value of type Yocaml.Data.t
to be used generically.
Types
type ezjsonm = [
| `Null
| `Bool of bool
| `Float of float
| `String of string
| `A of ezjsonm list
| `O of (string * ezjsonm) list
]
Describes type ezjsonm
(to be compatible with historical libraries, such as ocaml_yaml).
Creating Data values
Generic Data values
Building generic Data values.
pair f g (x, y)
construct a pair as a t
. A pair has the structure {"fst": a, "snd": b}
.
triple f g h (x, y, z)
is pair f (pair g h) (x, (y, z))
. It use pair
to define triple
.
quad f g h i (w, x, y, z)
is pair f (triple g h) (w, (x, y, z))
either f g x
construct either as a t
. Either has the structure {"constr": "left | right", "value": e}
.
Specific Data values
Validating Data values
Used to validate data described by type Yocaml.Data.t
to build validation pipelines. The aim of this module is to produce combinators for building validation pipelines that support nesting and that can transform any value described by the AST in Data
into arbitrary OCaml values.
Utils
Pretty-printer for t
(mostly used for debugging issue).
to_sexp
convert to a Yocaml.Sexp.t
.