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 -->-ยด
Model : sig ... end
include S with type query := Model.query with type response := Model.response
val dispatch_multi : Connection_with_menu.t ‑> query ‑> response Core_kernel.Or_error.t Async_kernel.Deferred.t
Multi-version dispatch.
val versions : unit ‑> Core_kernel.Int.Set.t
All versions supported by dispatch_multi
(useful for computing which old
versions may be pruned).