Module Core.Command.Arg_type

Argument types.

type 'a t

The type of a command line argument.

val create : ?⁠complete:(Core__.Import.Univ_map.t ‑> part:string ‑> string list) ‑> ?⁠key:'a Core__.Import.Univ_map.Multi.Key.t ‑> (string ‑> 'a) ‑> 'a t

An argument type includes information about how to parse values of that type from the command line, and (optionally) how to autocomplete partial arguments of that type via bash's programmable tab-completion. In addition to the argument prefix, autocompletion also has access to any previously parsed arguments in the form of a heterogeneous map into which previously parsed arguments may register themselves by providing a Univ_map.Key using the ~key argument to create.

If the of_string function raises an exception, command line parsing will be aborted and the exception propagated up to top-level and printed along with command-line help.

val map : ?⁠key:'b Core__.Import.Univ_map.Multi.Key.t ‑> 'a t ‑> f:('a ‑> 'b) ‑> 'b t

Transforms the result of a t using f.

val of_map : ?⁠key:'a Core__.Import.Univ_map.Multi.Key.t ‑> 'a Core__.Import.String.Map.t ‑> 'a t

An auto-completing Arg_type over a finite set of values.

val of_alist_exn : ?⁠key:'a Core__.Import.Univ_map.Multi.Key.t ‑> (string * 'a) list ‑> 'a t

Convenience wrapper for of_map. Raises on duplicate keys.

val file : ?⁠key:'a Core__.Import.Univ_map.Multi.Key.t ‑> (string ‑> 'a) ‑> 'a t

file defines an Arg_type.t that completes in the same way as Command.Spec.file, but perhaps with a different type than string or with an autocompletion key.

val comma_separated : ?⁠key:'a list Core__.Import.Univ_map.Multi.Key.t ‑> ?⁠strip_whitespace:bool ‑> ?⁠unique_values:bool ‑> 'a t ‑> 'a list t

comma_separated t accepts comma-separated lists of arguments parsed by t. If strip_whitespace = true, whitespace is stripped from each comma-separated string before it is parsed by t. The empty string (or just whitespace, if strip_whitespace = true) results in an empty list. If unique_values = true no autocompletion will be offered for arguments already supplied in the fragment to complete.

module Export : sig ... end

Values to include in other namespaces.