Module Async_rpc_kernel__Versioned_rpc.Both_convert.Pipe_rpc.Make

Parameters

Model : sig ... end

Signature

module type Version_shared : sig ... end
module Register : functor (Version_i : sig ... end) -> sig ... end
module Register_raw : functor (Version_i : sig ... end) -> sig ... end

Register_raw is like Register except you get the whole pipe to deal with.

include S with type caller_query := Model.Caller.query with type caller_response := Model.Caller.response with type caller_error := Model.Caller.error with type callee_query := Model.Callee.query with type callee_response := Model.Callee.response with type callee_error := Model.Callee.error
type caller_query
type caller_response
type caller_error
type callee_query
type callee_response
type callee_error
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