Module type Async_rpc_kernel__.Versioned_rpc.Both_convert.Pipe_rpc.S

                     (conv)   (conv)                          (conv)   (conv)
                     caller   callee                          callee   caller
                     |        |                               |        |
                     |        |                               |        |
        Q.caller ---->-- Q1 -->-.             (impl)        .->-- R1 -->---- R.caller
                \                \            callee       /                /
                 \--->-- Q2 -->---\           |           /--->-- R2 -->---/
                  \                \          |          /                /
                   `->-- Q3 -->---- Q.callee --> R.callee ---->-- R3 -->-´
type caller_query
type caller_response
type caller_error
type callee_query
type callee_response
type callee_error
val dispatch_multi : Connection_with_menu.t ‑> caller_query ‑> (caller_response Core_kernel.Or_error.t Async_kernel.Pipe.Reader.t * Async_rpc_kernel.Rpc.Pipe_rpc.Metadata.tcaller_errorCore_kernel.Result.t Core_kernel.Or_error.t Async_kernel.Deferred.t

multi-version dispatch

val dispatch_iter_multi : Connection_with_menu.t ‑> caller_query ‑> f:(caller_response Async_rpc_kernel.Rpc.Pipe_rpc.Pipe_message.t ‑> Async_rpc_kernel.Rpc.Pipe_rpc.Pipe_response.t) ‑> (Async_rpc_kernel.Rpc.Pipe_rpc.Id.tcaller_errorCore_kernel.Result.t Core_kernel.Or_error.t Async_kernel.Deferred.t
val implement_multi : ?⁠log_not_previously_seen_version:(name:string ‑> int ‑> unit) ‑> ('state ‑> version:int ‑> callee_query ‑> (callee_response Async_kernel.Pipe.Reader.tcallee_errorCore_kernel.Result.t Async_kernel.Deferred.t) ‑> 'state Async_rpc_kernel.Rpc.Implementation.t list

implement multiple versions at once

val implement_direct_multi : ?⁠log_not_previously_seen_version:(name:string ‑> int ‑> unit) ‑> ('state ‑> version:int ‑> callee_query ‑> callee_response Versioned_direct_stream_writer.t ‑> (unit, callee_errorCore_kernel.Result.t Async_kernel.Deferred.t) ‑> 'state Async_rpc_kernel.Rpc.Implementation.t list
val rpcs : unit ‑> Async_rpc_kernel.Rpc.Any.t list

All supported rpcs.

val versions : unit ‑> Core_kernel.Int.Set.t

All supported versions. Useful for detecting old versions that may be pruned.

val name : string