package irmin

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

Backend configuration.

A backend configuration is a set of keys mapping to typed values. Backends define their own keys.

Configuration converters

A configuration converter transforms a string value to an OCaml value and vice-versa. There are a few built-in converters.

type 'a parser = string -> ('a, [ `Msg of string ]) Result.result

The type for configuration converter parsers.

type 'a printer = 'a Fmt.t

The type for configuration converter printers.

type 'a converter = 'a parser * 'a printer

The type for configuration converters.

val parser : 'a converter -> 'a parser

parser c is c's parser.

val printer : 'a converter -> 'a printer

converter c is c's printer.

Keys

type 'a key

The type for configuration keys whose lookup value is 'a.

val key : ?docs:string -> ?docv:string -> ?doc:string -> string -> 'a converter -> 'a -> 'a key

key ~docs ~docv ~doc name conv default is a configuration key named name that maps to value default by default. conv is used to convert key values provided by end users.

docs is the title of a documentation section under which the key is documented. doc is a short documentation string for the key, this should be a single sentence or paragraph starting with a capital letter and ending with a dot. docv is a meta-variable for representing the values of the key (e.g. "BOOL" for a boolean).

  • raises Invalid_argument

    if the key name is not made of a sequence of ASCII lowercase letter, digit, dash or underscore. FIXME not implemented.

    Warning. No two keys should share the same name as this may lead to difficulties in the UI.

val name : 'a key -> string

The key name.

val conv : 'a key -> 'a converter

tc k is k's converter.

val default : 'a key -> 'a

default k is k's default value.

val doc : 'a key -> string option

doc k is k's documentation string (if any).

val docv : 'a key -> string option

docv k is k's value documentation meta-variable (if any).

val docs : 'a key -> string option

docs k is k's documentation section (if any).

val root : string option key

Default --root=ROOT argument.

Configurations

type t = config

The type for configurations.

val empty : t

empty is the empty configuration.

val singleton : 'a key -> 'a -> t

singleton k v is the configuration where k maps to v.

val is_empty : t -> bool

is_empty c is true iff c is empty.

val mem : t -> 'a key -> bool

mem c k is true iff k has a mapping in c.

val add : t -> 'a key -> 'a -> t

add c k v is c with k mapping to v.

val rem : t -> 'a key -> t

rem c k is c with k unbound.

val union : t -> t -> t

union r s is the union of the configurations r and s.

val find : t -> 'a key -> 'a option

find c k is k's mapping in c, if any.

val get : t -> 'a key -> 'a

get c k is k's mapping in c.

Raises. Not_found if k is not bound in d.

Built-in value converters

val bool : bool converter

bool converts values with bool_of_string.

val int : int converter

int converts values with int_of_string.

val string : string converter

string converts values with the identity function.

val uri : Uri.t converter

uri converts values with Uri.of_string.

val some : 'a converter -> 'a option converter

string converts values with the identity function.