sig
type descr = { name : string option; descr : string; arg_descr : string; }
type 'a t = {
run : string list -> 'a option;
doc : Dispatch_arg.descr option;
}
module Spec :
sig
type ('a, 'b) t
module Result :
sig
type ('a, 'b) t
val unit : (unit, string) Dispatch_arg.Spec.Result.t
val ok : (unit, string) Dispatch_arg.Spec.Result.t
val bool : (bool, string) Dispatch_arg.Spec.Result.t
val big_string :
(Core.Std.Bigstring.t, string) Dispatch_arg.Spec.Result.t
val string : (string, string) Dispatch_arg.Spec.Result.t
val int : (int, string) Dispatch_arg.Spec.Result.t
val list :
?sep:string ->
('a, string) Dispatch_arg.Spec.Result.t ->
('a list, string) Dispatch_arg.Spec.Result.t
val create : ('a -> 'b) -> ('a, 'b) Dispatch_arg.Spec.Result.t
end
module Infix :
sig
val ( ++ ) :
('a, 'b) Dispatch_arg.Spec.t ->
('c, 'a) Dispatch_arg.Spec.t -> ('c, 'b) Dispatch_arg.Spec.t
val ( --> ) :
('a, 'b) Dispatch_arg.Spec.t ->
('a, 'c) Dispatch_arg.Spec.Result.t ->
('c, 'b) Dispatch_arg.Spec.t
end
val ( ++ ) :
('a, 'b) Dispatch_arg.Spec.t ->
('c, 'a) Dispatch_arg.Spec.t -> ('c, 'b) Dispatch_arg.Spec.t
val ( --> ) :
('a, 'b) Dispatch_arg.Spec.t ->
('a, 'c) Dispatch_arg.Spec.Result.t -> ('c, 'b) Dispatch_arg.Spec.t
val string : string -> ('a, string -> 'a) Dispatch_arg.Spec.t
val int : string -> ('a, int -> 'a) Dispatch_arg.Spec.t
val unit : ('a, unit -> 'a) Dispatch_arg.Spec.t
val list :
(unit, 'a -> unit) Dispatch_arg.Spec.t ->
('b, 'a list -> 'b) Dispatch_arg.Spec.t
val option :
('a, 'b -> 'a) Dispatch_arg.Spec.t ->
('a, 'b option -> 'a) Dispatch_arg.Spec.t
val choice :
('a, 'b) Dispatch_arg.Spec.t list -> ('a, 'b) Dispatch_arg.Spec.t
val create :
(string -> 'a option) -> string -> ('b, 'a -> 'b) Dispatch_arg.Spec.t
val map1 :
f:('a -> 'b) ->
('c, 'a -> 'c) Dispatch_arg.Spec.t ->
('c, 'b -> 'c) Dispatch_arg.Spec.t
val map2 :
f:('a -> 'b -> 'c) ->
('d, 'a -> 'b -> 'd) Dispatch_arg.Spec.t ->
('d, 'c -> 'd) Dispatch_arg.Spec.t
val map3 :
f:('a -> 'b -> 'c -> 'd) ->
('e, 'a -> 'b -> 'c -> 'e) Dispatch_arg.Spec.t ->
('e, 'd -> 'e) Dispatch_arg.Spec.t
end
val embed :
?cmd:string ->
descr:string -> 'a -> ('b, 'a) Dispatch_arg.Spec.t -> 'b Dispatch_arg.t
val declare :
?doc:Dispatch_arg.descr ->
(string list -> 'a option) -> 'a Dispatch_arg.t
val run :
?prog_name:string ->
?args:string list ->
?global:Core.Std.Arg.t list -> string Dispatch_arg.t list -> 'a
val run_gen :
?prog_name:string ->
?args:string list ->
?global:Core.Std.Arg.t list -> 'a Dispatch_arg.t list -> 'a
type shell = {
prompt : unit -> string;
quit : 'a. unit -> 'a;
err : exn -> unit;
}
val default_shell : Dispatch_arg.shell
val shell :
Dispatch_arg.shell ->
?global:Core.Std.Arg.t list -> string Dispatch_arg.t list -> 'a
end