Module Make.RPC_directory

type 'a t = 'a Mavryk_rpc.Directory.t

Dispatch tree

type 'prefix directory = 'prefix t
val empty : 'prefix directory

Empty list of dispatch trees

val map : ('a -> 'b Lwt.t) -> 'b directory -> 'a directory
val prefix : ('pr, 'p) RPC_path.path -> 'p directory -> 'pr directory
val merge : 'a directory -> 'a directory -> 'a directory
type step =
  1. | Static of string
  2. | Dynamic of RPC_arg.descr
  3. | DynamicTail of RPC_arg.descr

Possible error while registering services.

type conflict =
  1. | CService of RPC_service.meth
  2. | CDir
  3. | CBuilder
  4. | CTail
  5. | CTypes of RPC_arg.descr * RPC_arg.descr
  6. | CType of RPC_arg.descr * string list
exception Conflict of step list * conflict
val register : chunked:bool -> 'prefix directory -> ('meth, 'prefix, 'params, 'query, 'input, 'output) RPC_service.t -> ('params -> 'query -> 'input -> 'output Error_monad.tzresult Lwt.t) -> 'prefix directory

Registering handler in service tree.

The chunked parameter controls whether the answer to the RPC is chunk encoded (i.e., the serialisation is split and the caller receives the answer in multiple chunks) or not. Defaults to false. Set to true for RPCs that return potentially large collections (e.g., unbounded lists).

val opt_register : chunked:bool -> 'prefix directory -> ('meth, 'prefix, 'params, 'query, 'input, 'output) RPC_service.t -> ('params -> 'query -> 'input -> 'output option Error_monad.tzresult Lwt.t) -> 'prefix directory
val gen_register : 'prefix directory -> ('meth, 'prefix, 'params, 'query, 'input, 'output) RPC_service.t -> ('params -> 'query -> 'input -> [< 'output RPC_answer.t ] Lwt.t) -> 'prefix directory
val lwt_register : chunked:bool -> 'prefix directory -> ('meth, 'prefix, 'params, 'query, 'input, 'output) RPC_service.t -> ('params -> 'query -> 'input -> 'output Lwt.t) -> 'prefix directory

Registering handler in service tree. Curryfied variant.

val register0 : chunked:bool -> unit directory -> ('m, unit, unit, 'q, 'i, 'o) RPC_service.t -> ('q -> 'i -> 'o Error_monad.tzresult Lwt.t) -> unit directory
val register1 : chunked:bool -> 'prefix directory -> ('m, 'prefix, unit * 'a, 'q, 'i, 'o) RPC_service.t -> ('a -> 'q -> 'i -> 'o Error_monad.tzresult Lwt.t) -> 'prefix directory
val register2 : chunked:bool -> 'prefix directory -> ('m, 'prefix, (unit * 'a) * 'b, 'q, 'i, 'o) RPC_service.t -> ('a -> 'b -> 'q -> 'i -> 'o Error_monad.tzresult Lwt.t) -> 'prefix directory
val register3 : chunked:bool -> 'prefix directory -> ('m, 'prefix, ((unit * 'a) * 'b) * 'c, 'q, 'i, 'o) RPC_service.t -> ('a -> 'b -> 'c -> 'q -> 'i -> 'o Error_monad.tzresult Lwt.t) -> 'prefix directory
val register4 : chunked:bool -> 'prefix directory -> ('m, 'prefix, (((unit * 'a) * 'b) * 'c) * 'd, 'q, 'i, 'o) RPC_service.t -> ('a -> 'b -> 'c -> 'd -> 'q -> 'i -> 'o Error_monad.tzresult Lwt.t) -> 'prefix directory
val register5 : chunked:bool -> 'prefix directory -> ('m, 'prefix, ((((unit * 'a) * 'b) * 'c) * 'd) * 'e, 'q, 'i, 'o) RPC_service.t -> ('a -> 'b -> 'c -> 'd -> 'e -> 'q -> 'i -> 'o Error_monad.tzresult Lwt.t) -> 'prefix directory
val opt_register0 : chunked:bool -> unit directory -> ('m, unit, unit, 'q, 'i, 'o) RPC_service.t -> ('q -> 'i -> 'o option Error_monad.tzresult Lwt.t) -> unit directory
val opt_register1 : chunked:bool -> 'prefix directory -> ('m, 'prefix, unit * 'a, 'q, 'i, 'o) RPC_service.t -> ('a -> 'q -> 'i -> 'o option Error_monad.tzresult Lwt.t) -> 'prefix directory
val opt_register2 : chunked:bool -> 'prefix directory -> ('m, 'prefix, (unit * 'a) * 'b, 'q, 'i, 'o) RPC_service.t -> ('a -> 'b -> 'q -> 'i -> 'o option Error_monad.tzresult Lwt.t) -> 'prefix directory
val opt_register3 : chunked:bool -> 'prefix directory -> ('m, 'prefix, ((unit * 'a) * 'b) * 'c, 'q, 'i, 'o) RPC_service.t -> ('a -> 'b -> 'c -> 'q -> 'i -> 'o option Error_monad.tzresult Lwt.t) -> 'prefix directory
val opt_register4 : chunked:bool -> 'prefix directory -> ('m, 'prefix, (((unit * 'a) * 'b) * 'c) * 'd, 'q, 'i, 'o) RPC_service.t -> ('a -> 'b -> 'c -> 'd -> 'q -> 'i -> 'o option Error_monad.tzresult Lwt.t) -> 'prefix directory
val opt_register5 : chunked:bool -> 'prefix directory -> ('m, 'prefix, ((((unit * 'a) * 'b) * 'c) * 'd) * 'e, 'q, 'i, 'o) RPC_service.t -> ('a -> 'b -> 'c -> 'd -> 'e -> 'q -> 'i -> 'o option Error_monad.tzresult Lwt.t) -> 'prefix directory
val gen_register0 : unit directory -> ('m, unit, unit, 'q, 'i, 'o) RPC_service.t -> ('q -> 'i -> [< 'o RPC_answer.t ] Lwt.t) -> unit directory
val gen_register1 : 'prefix directory -> ('m, 'prefix, unit * 'a, 'q, 'i, 'o) RPC_service.t -> ('a -> 'q -> 'i -> [< 'o RPC_answer.t ] Lwt.t) -> 'prefix directory
val gen_register2 : 'prefix directory -> ('m, 'prefix, (unit * 'a) * 'b, 'q, 'i, 'o) RPC_service.t -> ('a -> 'b -> 'q -> 'i -> [< 'o RPC_answer.t ] Lwt.t) -> 'prefix directory
val gen_register3 : 'prefix directory -> ('m, 'prefix, ((unit * 'a) * 'b) * 'c, 'q, 'i, 'o) RPC_service.t -> ('a -> 'b -> 'c -> 'q -> 'i -> [< 'o RPC_answer.t ] Lwt.t) -> 'prefix directory
val gen_register4 : 'prefix directory -> ('m, 'prefix, (((unit * 'a) * 'b) * 'c) * 'd, 'q, 'i, 'o) RPC_service.t -> ('a -> 'b -> 'c -> 'd -> 'q -> 'i -> [< 'o RPC_answer.t ] Lwt.t) -> 'prefix directory
val gen_register5 : 'prefix directory -> ('m, 'prefix, ((((unit * 'a) * 'b) * 'c) * 'd) * 'e, 'q, 'i, 'o) RPC_service.t -> ('a -> 'b -> 'c -> 'd -> 'e -> 'q -> 'i -> [< 'o RPC_answer.t ] Lwt.t) -> 'prefix directory
val lwt_register0 : chunked:bool -> unit directory -> ('m, unit, unit, 'q, 'i, 'o) RPC_service.t -> ('q -> 'i -> 'o Lwt.t) -> unit directory
val lwt_register1 : chunked:bool -> 'prefix directory -> ('m, 'prefix, unit * 'a, 'q, 'i, 'o) RPC_service.t -> ('a -> 'q -> 'i -> 'o Lwt.t) -> 'prefix directory
val lwt_register2 : chunked:bool -> 'prefix directory -> ('m, 'prefix, (unit * 'a) * 'b, 'q, 'i, 'o) RPC_service.t -> ('a -> 'b -> 'q -> 'i -> 'o Lwt.t) -> 'prefix directory
val lwt_register3 : chunked:bool -> 'prefix directory -> ('m, 'prefix, ((unit * 'a) * 'b) * 'c, 'q, 'i, 'o) RPC_service.t -> ('a -> 'b -> 'c -> 'q -> 'i -> 'o Lwt.t) -> 'prefix directory
val lwt_register4 : chunked:bool -> 'prefix directory -> ('m, 'prefix, (((unit * 'a) * 'b) * 'c) * 'd, 'q, 'i, 'o) RPC_service.t -> ('a -> 'b -> 'c -> 'd -> 'q -> 'i -> 'o Lwt.t) -> 'prefix directory
val lwt_register5 : chunked:bool -> 'prefix directory -> ('m, 'prefix, ((((unit * 'a) * 'b) * 'c) * 'd) * 'e, 'q, 'i, 'o) RPC_service.t -> ('a -> 'b -> 'c -> 'd -> 'e -> 'q -> 'i -> 'o Lwt.t) -> 'prefix directory
val register_dynamic_directory : ?descr:string -> 'prefix directory -> ('prefix, 'a) RPC_path.t -> ('a -> 'a directory Lwt.t) -> 'prefix directory

Registering dynamic subtree.