package core

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

Argument types.

type 'a t = 'a Command.Arg_type.t

The type of a command line argument.

val create : ?complete:Command.Auto_complete.t -> ?key:'a Univ_map.Multi.Key.t -> (Base.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.

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 parse : 'a t -> Base.string -> 'a Base.Or_error.t

Apply the parse function to the given string the same way it would apply to an argument, catching any exceptions thrown.

val map : ?key:'b Univ_map.Multi.Key.t -> 'a t -> f:('a -> 'b) -> 'b t

Transforms the result of a t using f.

val of_lazy : ?key:'a Univ_map.Multi.Key.t -> 'a t Base.Lazy.t -> 'a t

Defers construction of the arg type until it is needed.

val of_map : ?accept_unique_prefixes:Base.bool -> ?case_sensitive:Base.bool -> ?list_values_in_help:Base.bool -> ?auto_complete:Command.Auto_complete.t -> ?key:'a Univ_map.Multi.Key.t -> 'a Base.Map.M(Base.String).t -> 'a t

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

val of_alist_exn : ?accept_unique_prefixes:Base.bool -> ?case_sensitive:Base.bool -> ?list_values_in_help:Base.bool -> ?auto_complete:Command.Auto_complete.t -> ?key:'a Univ_map.Multi.Key.t -> (Base.string * 'a) Base.list -> 'a t

Convenience wrapper for of_map. Raises on duplicate keys.

val enumerated : ?accept_unique_prefixes:Base.bool -> ?case_sensitive:Base.bool -> ?list_values_in_help:Base.bool -> ?auto_complete:Command.Auto_complete.t -> ?key:'a Univ_map.Multi.Key.t -> (module Command.Enumerable_stringable with type t = 'a) -> 'a t

Convenience wrapper for of_alist_exn to use with ppx_enumerate using to_string. Raises on duplicate to_stringed values.

val enumerated_sexpable : ?accept_unique_prefixes:Base.bool -> ?case_sensitive:Base.bool -> ?list_values_in_help:Base.bool -> ?auto_complete:Command.Auto_complete.t -> ?key:'a Univ_map.Multi.Key.t -> (module Command.Enumerable_sexpable with type t = 'a) -> 'a t

Convenience wrapper for of_alist_exn to use with ppx_enumerate using sexp_of_t to turn the value into a string. Raises on duplicate to_stringed values.

val comma_separated : ?allow_empty:Base.bool -> ?key:'a Base.list Univ_map.Multi.Key.t -> ?strip_whitespace:Base.bool -> ?unique_values:Base.bool -> 'a t -> 'a Base.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.

If allow_empty = true then the empty string (or just whitespace, if strip_whitespace = true) results in an empty list, and if allow_empty = false then the empty string will fail to parse. (Note that there is currently no way for comma_separated to produce a list whose only element is the empty string.)

If unique_values = true no autocompletion will be offered for arguments already supplied in the fragment to complete.

val auto_complete : _ t -> Command.Auto_complete.t
module Export : sig ... end