Module type 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 * Rpc.Pipe_rpc.Metadata.tcaller_error) Core_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 Rpc.Pipe_rpc.Pipe_message.t -> Rpc.Pipe_rpc.Pipe_response.t) -> (Rpc.Pipe_rpc.Id.tcaller_error) Core_kernel.Result.t Core_kernel.Or_error.t Async_kernel.Deferred.t
val abort_multi : Connection_with_menu.t -> Rpc.Pipe_rpc.Id.t -> unit Core_kernel.Or_error.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_error) Core_kernel.Result.t Async_kernel.Deferred.t) -> 'state 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_error) Core_kernel.Result.t Async_kernel.Deferred.t) -> 'state Rpc.Implementation.t list
val rpcs : unit -> 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