Given a model of the types involved in a family of RPCs, this functor provides a single RPC versioned dispatch function
dispatch_multi in terms of that model and a mechanism for registering the individual versions that
dispatch_multi knows about. Registration requires knowing how to get into and out of the model.
,-->-- Q1 --> R1 -->-. / \ Q --->-- Q2 --> R2 -->-- R \ / `-->-- Q3 --> R3 -->-´
module Model : sig ... end
Adds a new version to the set of versions available via
A variant of
Register in which the query is made available when transforming the response
include S with type query := Model.query with type response := Model.response
val dispatch_multi : Connection_with_menu.t -> Model.query -> Model.response Core_kernel.Or_error.t Async_kernel.Deferred.t
val rpcs : unit -> Rpc.Any.t list
All rpcs supported by
val versions : unit -> Core_kernel.Int.Set.t
All versions supported by
dispatch_multi (useful for computing which old versions may be pruned).