package orsetto
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=151ca6df499bd3de7aa89a4e1627411fbee24c4dea6e0e71ce21f06f181ee654
md5=00393728b481c2bf15919a8202732335
doc/orsetto.cf/Cf_emit/index.html
Module Cf_emit
Functional emitter/formatter combinators
Overview
In counterpart to
f_scan
, this module provides functional combinators for composing imperative emitters for various arbitrary output chanenls. Specializations are provided for
f_encode.emitter
, and the Buffer.t
and Format.formatter
types in the standard library.
Type
Use ('a, 'b) t
to represent an emitter on channels of type 'a
for values of type 'b
.
Functions
val apply : ('a, 'b) t -> 'a -> 'b -> unit
Use apply m c v
to emit v
on channel c
with emitter m
.
val nil : ('a, 'b) t
The empty emitter, performs no operation on the channel.
Use defer f
to make an emitter that applies f
to its value to select the sealed emitter for it.
Use map f m
to make an emitter that applies its input value to f
and emits the result with m
.
val coded : 'a Cf_encode.scheme -> (Cf_encode.emitter, 'a) t
Use coded sch
to make a emitter combinator for sch
.
Use pair a b
to make an emitter for pairs of values where a
is the emitter for the first value and b
is the emitter for the second. If ~sep
is provided, then it is inserted between the first and second values.
Use opt m
to make an emitter for optional values. If ~none
is provided, this its sealed value is emitter whenever the input of m
is None
.
Use seq m
to make an emitter for sequences where each element is emitted with m
. If ~sep
is provided, then its sealed value is emitted between each element of the sequence.
Use group s
to make a sealed emitter that emits all the sealed values in the sequence s
. If ~sep
is provided, then its sealed value is emitted between each element in the sequence.
Use encl ~a ~b m
to make an emitter that first emits the sealed value in a
, then provides its input to m
, then emits the sealed value in b
.
Specializations for Buffer.t
module To_buffer : sig ... end
Specializations for Format.formatter
module To_formatter : sig ... end