Conf.BitConfiguration bits.
Bundles a cli interface and a configuration file lookup.
Note. For Cmdliner proper support we would likely hide it in Cmdliner terms and let them handle the merge logic. Though that poses a few problems with e.g. configuration error report/recovery. Another problem is the recursion between specifying the configuration file lookup on the cli itself while using it terms themselves. Also lazy absents.
val with_cli_arg : ?docs:string -> ?docv:string -> string -> doc:string -> absent:'a ->
conf:'a B00_serialk_sexp.Sexpq.t -> arg:(Cmdliner.Arg.info -> 'a option Cmdliner.Arg.t) -> 'a twith_cli_arg n ~doc ~docs ~docv ~absent ~conf ~arg is a configuration bit named by n.
arg is used to parse the bit from the cli using an option argument named n documented with doc in section docs and metavariable docv.conf is used to lookup the bit value in a configuration dictionary with an optional key n.absent is used as a default value.val with_cli : string -> absent:'a -> conf:'a B00_serialk_sexp.Sexpq.t -> cli:'a option Cmdliner.Term.t -> 'a twith_cli n ~absent ~conf ~cli is a configuration bit named by n
cli is used to get the bit from the cli.conf is used to lookup the bit value in a configuration dictionary with an optional key n.basent is used as a default value.val cli : 'a t -> 'a option Cmdliner.Term.tcli b is the command line interface for b.
val conf : 'a t -> 'a B00_serialk_sexp.Sexpq.tconf b is the configuration key query for b. If the key is not found absent is returned.
val get : 'a t -> 'a option -> (B00_serialk_sexp.Sexp.t * B00_serialk_sexp.Sexpq.path) -> ('a, string) resultget b cli sexp gets the configuration bit from sexp if cli is None. If it's not in the configuration then absent is returned.
val append : 'a list t -> 'a list option -> (B00_serialk_sexp.Sexp.t * B00_serialk_sexp.Sexpq.path) -> ('a list, string) resultappend b cli sexp gets the configuration bit from sexp and appends them to cli.