package ocf
Install
Dune Dependency
Authors
Maintainers
Sources
md5=4f71a321a225bb5dbb0f50cb2355b8f9
sha512=512b3a3c804008374d8a8f0d48b8c3101012d758b213e81818eb54305435422baf6191252da7d71cea6aa5e73a318ff2aa66ab84adaa31a44a5ea6917ca4420c
doc/ocf/Ocf/index.html
Module Ocf
Source
Reading and writing configuration files in JSON syntax
To represent option names from root.
Errors
type error =
| Json_error of string
(*JSON could not be read or written
*)| Invalid_value of Yojson.Safe.t
(*Unexpected JSON value
*)| Invalid_path of path
(*Invalid path used (empty list)
*)| Path_conflict of path
(*When adding an option, an option path cannot be the prefix of another one.
*)| Error_at_path of path * error
(*Error while reading the option at the given path.
*)| Exn_at_path of path * exn
(*Exception raised while reading the option at the given path
*)
Convenient functions to raise Error
Wrappers
A wrapper is a pair of functions to read and write values of some type from and to JSON.
Options and option groups
An option with a value of type 'a
. When the option is found in a JSON code (see Reading options), the value is modified in place. Use get
to retrieve the option value.
option wrapper v
creates an option with initial value v
and using the given wrapper
to read and write from and to JSON.
get option
returns the value of the given option.
set option value
sets the value of the given option and calls the associated callback if any.
A group is used to group options and other groups. An `Open
group is a group in which other options and groups can be added. Nothing can be added to a `Closed
group.
add group path option
adds the given option
to group
at path
.
add_group group path g
adds the group g
to group
at path
.
as_group option
creates a group from option
, i.e. like if the given option had an empty access path. Useful for options created from a record wrapper using the ppx extension and that must be read as root element of a JSON file.
Convenient functions to create options
val list :
?doc:string ->
?cb:('a list -> unit) ->
'a wrapper ->
'a list ->
'a list conf_option
val option_ :
?doc:string ->
?cb:('a option -> unit) ->
'a wrapper ->
'a option ->
'a option conf_option
val pair :
?doc:string ->
?cb:(('a * 'b) -> unit) ->
'a wrapper ->
'b wrapper ->
('a * 'b) ->
('a * 'b) conf_option
val triple :
?doc:string ->
?cb:(('a * 'b * 'c) -> unit) ->
'a wrapper ->
'b wrapper ->
'c wrapper ->
('a * 'b * 'c) ->
('a * 'b * 'c) conf_option
val string_map :
?doc:string ->
?cb:('map -> unit) ->
fold:
((string -> 'a -> Wrapper.assocs -> Wrapper.assocs) ->
'map ->
Wrapper.assocs ->
Wrapper.assocs) ->
add:(string -> 'a -> 'map -> 'map) ->
empty:'map ->
'a wrapper ->
'map ->
'map conf_option
See Wrapper.string_map
for parameters.
Reading options
Writing options
The following functions output the current state of the group, i.e. the options it contains, with their current value.
The with_doc
parameter indicates whether to output doc associated to options. Default is true
.
Building command line arguments
to_arg option key
build a command line option description to use with the Arg
module. If doc
is not provided, then the description string of the option is used, if there is one; else the doc string is empty (preventing the option to appear in the list of options, see Arg
module documentation). key
is the option name, like "-n"
.