Module V4.RPC_directory

include module type of struct include Mavryk_rpc.Directory end
type step = Resto_directory.Make(Mavryk_rpc__.RPC_encoding).step =
  1. | Static of string
  2. | Dynamic of Resto.Arg.descr
  3. | DynamicTail of Resto.Arg.descr
exception Conflict of step list * Resto_directory.Make(Mavryk_rpc__.RPC_encoding).conflict
type (!'query, !'input, !'output, !'error) types = ('query, 'input, 'output, 'error) Resto_directory.Make(Mavryk_rpc__.RPC_encoding).types = {
  1. query : 'query Resto.Query.t;
  2. input : 'input Service.input;
  3. output : 'output Mavryk_rpc__.RPC_encoding.t;
  4. error : 'error Mavryk_rpc__.RPC_encoding.t;
}
type registered_service = Resto_directory.Make(Mavryk_rpc__.RPC_encoding).registered_service =
  1. | Service : {
    1. types : ('q, 'i, 'o, 'e) types;
    2. handler : 'q -> 'i -> ('o, 'e) Resto_directory.Answer.t Lwt.t;
    } -> registered_service
type 'prefix t = 'prefix Resto_directory.Make(Mavryk_rpc__.RPC_encoding).t
type 'prefix directory = 'prefix t
type lookup_error = [
  1. | `Cannot_parse_path of string list * Resto.Arg.descr * string
  2. | `Method_not_allowed of Resto.meth list
  3. | `Not_found
]
val string_of_step : step -> string
val string_of_conflict_kind : Resto_directory.Make(Mavryk_rpc__.RPC_encoding).conflict -> string
val string_of_conflict : (step list * Resto_directory.Make(Mavryk_rpc__.RPC_encoding).conflict) -> string
val lookup : 'prefix directory -> 'prefix -> Resto.meth -> string list -> (registered_service, [> lookup_error ]) Stdlib.result Lwt.t
val lookup_uri_desc : 'prefix directory -> 'prefix -> Resto.meth -> string list -> (string, [> lookup_error ]) Stdlib.result Lwt.t
val allowed_methods : 'prefix directory -> 'prefix -> string list -> (Resto.meth list, [> lookup_error ]) Stdlib.result Lwt.t
val transparent_lookup : 'prefix directory -> ([< Resto.meth ], 'prefix, 'params, 'query, 'input, 'output, 'error) Service.t -> 'params -> 'query -> 'input -> [> ('output, 'error) Resto_directory.Answer.t ] Lwt.t
val empty : 'prefix directory
val map : ('a -> 'b Lwt.t) -> 'b directory -> 'a directory
val prefix : ('pr, 'p) Resto.Path.path -> 'p directory -> 'pr directory
val register_dynamic_directory : ?descr:string -> 'prefix directory -> ('prefix, 'a) Resto.Path.path -> ('a -> 'a directory Lwt.t) -> 'prefix directory
val register_dynamic_directory1 : ?descr:string -> 'prefix directory -> ('prefix, unit * 'a) Resto.Path.path -> ('a -> (unit * 'a) directory Lwt.t) -> 'prefix directory
val register_dynamic_directory2 : ?descr:string -> 'prefix directory -> ('prefix, (unit * 'a) * 'b) Resto.Path.path -> ('a -> 'b -> ((unit * 'a) * 'b) directory Lwt.t) -> 'prefix directory
val register_dynamic_directory3 : ?descr:string -> 'prefix directory -> ('prefix, ((unit * 'a) * 'b) * 'c) Resto.Path.path -> ('a -> 'b -> 'c -> (((unit * 'a) * 'b) * 'c) directory Lwt.t) -> 'prefix directory
val register_describe_directory_service : 'prefix directory -> ('prefix, 'prefix, 'error) Service.description_service -> 'prefix directory
val describe_directory : recurse:bool -> ?arg:'a -> 'a directory -> (Data_encoding.json_schema * Data_encoding.Binary_schema.t) Resto.Description.directory Lwt.t
val register : 'prefix directory -> ([< Resto.meth ], 'prefix, 'p, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('p -> 'q -> 'i -> 'o Mavryk_error_monad.Error_monad.tzresult Lwt.t) -> 'prefix directory

Registering handler in service tree.

val register_chunked : 'prefix directory -> ([< Resto.meth ], 'prefix, 'p, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('p -> 'q -> 'i -> 'o Mavryk_error_monad.Error_monad.tzresult Lwt.t) -> 'prefix directory
val opt_register : 'prefix directory -> ([< Resto.meth ], 'prefix, 'p, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('p -> 'q -> 'i -> 'o option Mavryk_error_monad.Error_monad.tzresult Lwt.t) -> 'prefix directory
val gen_register : 'prefix directory -> ('meth, 'prefix, 'params, 'query, 'input, 'output, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('params -> 'query -> 'input -> [< 'output Mavryk_rpc__.RPC_answer.t ] Lwt.t) -> 'prefix directory
val lwt_register : 'prefix directory -> ([< Resto.meth ], 'prefix, 'p, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('p -> 'q -> 'i -> 'o Lwt.t) -> 'prefix directory

Registering handler in service tree. Curryfied variant.

val register0 : unit directory -> ('m, unit, unit, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('q -> 'i -> 'o Mavryk_error_monad.Error_monad.tzresult Lwt.t) -> unit directory
val register0_chunked : unit directory -> ('m, unit, unit, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('q -> 'i -> 'o Mavryk_error_monad.Error_monad.tzresult Lwt.t) -> unit directory
val register1 : 'prefix directory -> ('m, 'prefix, unit * 'a, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('a -> 'q -> 'i -> 'o Mavryk_error_monad.Error_monad.tzresult Lwt.t) -> 'prefix directory
val register2 : 'prefix directory -> ('m, 'prefix, (unit * 'a) * 'b, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('a -> 'b -> 'q -> 'i -> 'o Mavryk_error_monad.Error_monad.tzresult Lwt.t) -> 'prefix directory
val register3 : 'prefix directory -> ('m, 'prefix, ((unit * 'a) * 'b) * 'c, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('a -> 'b -> 'c -> 'q -> 'i -> 'o Mavryk_error_monad.Error_monad.tzresult Lwt.t) -> 'prefix directory
val register4 : 'prefix directory -> ('m, 'prefix, (((unit * 'a) * 'b) * 'c) * 'd, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('a -> 'b -> 'c -> 'd -> 'q -> 'i -> 'o Mavryk_error_monad.Error_monad.tzresult Lwt.t) -> 'prefix directory
val register5 : 'prefix directory -> ('m, 'prefix, ((((unit * 'a) * 'b) * 'c) * 'd) * 'e, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('a -> 'b -> 'c -> 'd -> 'e -> 'q -> 'i -> 'o Mavryk_error_monad.Error_monad.tzresult Lwt.t) -> 'prefix directory
val opt_register0 : unit directory -> ('m, unit, unit, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('q -> 'i -> 'o option Mavryk_error_monad.Error_monad.tzresult Lwt.t) -> unit directory
val opt_register1 : 'prefix directory -> ('m, 'prefix, unit * 'a, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('a -> 'q -> 'i -> 'o option Mavryk_error_monad.Error_monad.tzresult Lwt.t) -> 'prefix directory
val opt_register2 : 'prefix directory -> ('m, 'prefix, (unit * 'a) * 'b, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('a -> 'b -> 'q -> 'i -> 'o option Mavryk_error_monad.Error_monad.tzresult Lwt.t) -> 'prefix directory
val opt_register3 : 'prefix directory -> ('m, 'prefix, ((unit * 'a) * 'b) * 'c, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('a -> 'b -> 'c -> 'q -> 'i -> 'o option Mavryk_error_monad.Error_monad.tzresult Lwt.t) -> 'prefix directory
val opt_register4 : 'prefix directory -> ('m, 'prefix, (((unit * 'a) * 'b) * 'c) * 'd, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('a -> 'b -> 'c -> 'd -> 'q -> 'i -> 'o option Mavryk_error_monad.Error_monad.tzresult Lwt.t) -> 'prefix directory
val opt_register5 : 'prefix directory -> ('m, 'prefix, ((((unit * 'a) * 'b) * 'c) * 'd) * 'e, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('a -> 'b -> 'c -> 'd -> 'e -> 'q -> 'i -> 'o option Mavryk_error_monad.Error_monad.tzresult Lwt.t) -> 'prefix directory
val gen_register0 : unit directory -> ('m, unit, unit, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('q -> 'i -> [< 'o Mavryk_rpc__.RPC_answer.t ] Lwt.t) -> unit directory
val gen_register1 : 'prefix directory -> ('m, 'prefix, unit * 'a, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('a -> 'q -> 'i -> [< 'o Mavryk_rpc__.RPC_answer.t ] Lwt.t) -> 'prefix directory
val gen_register2 : 'prefix directory -> ('m, 'prefix, (unit * 'a) * 'b, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('a -> 'b -> 'q -> 'i -> [< 'o Mavryk_rpc__.RPC_answer.t ] Lwt.t) -> 'prefix directory
val gen_register3 : 'prefix directory -> ('m, 'prefix, ((unit * 'a) * 'b) * 'c, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('a -> 'b -> 'c -> 'q -> 'i -> [< 'o Mavryk_rpc__.RPC_answer.t ] Lwt.t) -> 'prefix directory
val gen_register4 : 'prefix directory -> ('m, 'prefix, (((unit * 'a) * 'b) * 'c) * 'd, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('a -> 'b -> 'c -> 'd -> 'q -> 'i -> [< 'o Mavryk_rpc__.RPC_answer.t ] Lwt.t) -> 'prefix directory
val gen_register5 : 'prefix directory -> ('m, 'prefix, ((((unit * 'a) * 'b) * 'c) * 'd) * 'e, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('a -> 'b -> 'c -> 'd -> 'e -> 'q -> 'i -> [< 'o Mavryk_rpc__.RPC_answer.t ] Lwt.t) -> 'prefix directory
val lwt_register0 : unit directory -> ('m, unit, unit, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('q -> 'i -> 'o Lwt.t) -> unit directory
val lwt_register1 : 'prefix directory -> ('m, 'prefix, unit * 'a, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('a -> 'q -> 'i -> 'o Lwt.t) -> 'prefix directory
val lwt_register2 : 'prefix directory -> ('m, 'prefix, (unit * 'a) * 'b, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('a -> 'b -> 'q -> 'i -> 'o Lwt.t) -> 'prefix directory
val lwt_register3 : 'prefix directory -> ('m, 'prefix, ((unit * 'a) * 'b) * 'c, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('a -> 'b -> 'c -> 'q -> 'i -> 'o Lwt.t) -> 'prefix directory
val lwt_register4 : 'prefix directory -> ('m, 'prefix, (((unit * 'a) * 'b) * 'c) * 'd, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('a -> 'b -> 'c -> 'd -> 'q -> 'i -> 'o Lwt.t) -> 'prefix directory
val lwt_register5 : 'prefix directory -> ('m, 'prefix, ((((unit * 'a) * 'b) * 'c) * 'd) * 'e, 'q, 'i, 'o, Mavryk_error_monad.Error_monad.error list) Resto.MakeService(Mavryk_rpc__.RPC_encoding).t -> ('a -> 'b -> 'c -> 'd -> 'e -> 'q -> 'i -> 'o Lwt.t) -> 'prefix directory
type conflict =
  1. | CService of Mavryk_rpc.Service.meth
  2. | CDir
  3. | CBuilder
  4. | CTail
  5. | CTypes of Mavryk_rpc.Arg.descr * Mavryk_rpc.Arg.descr
  6. | CType of Mavryk_rpc.Arg.descr * string list
exception Conflict of step list * conflict
val merge : 'a directory -> 'a directory -> 'a directory