sig
type ('query, 'response, 'error) t
module Id : sig type t end
val create :
name:string ->
version:int ->
bin_query:'query Core.Std.Bin_prot.Type_class.t ->
bin_response:'response Core.Std.Bin_prot.Type_class.t ->
bin_error:'error Core.Std.Bin_prot.Type_class.t ->
('query, 'response, 'error) Rpc.Pipe_rpc.t
val implement :
('query, 'response, 'error) Rpc.Pipe_rpc.t ->
('connection_state ->
'query ->
aborted:unit Import.Deferred.t ->
('response Import.Pipe.Reader.t, 'error) Core.Std.Result.t
Import.Deferred.t) ->
'connection_state Rpc.Implementation.t
val dispatch :
('query, 'response, 'error) Rpc.Pipe_rpc.t ->
Rpc.Connection.t ->
'query ->
('response Import.Pipe.Reader.t * Rpc.Pipe_rpc.Id.t, 'error)
Core.Std.Result.t Core.Std.Or_error.t Import.Deferred.t
val dispatch_exn :
('query, 'response, 'error) Rpc.Pipe_rpc.t ->
Rpc.Connection.t ->
'query ->
('response Import.Pipe.Reader.t * Rpc.Pipe_rpc.Id.t) Import.Deferred.t
val abort :
('a, 'b, 'c) Rpc.Pipe_rpc.t ->
Rpc.Connection.t -> Rpc.Pipe_rpc.Id.t -> unit
val name : ('a, 'b, 'c) Rpc.Pipe_rpc.t -> string
val version : ('a, 'b, 'c) Rpc.Pipe_rpc.t -> int
end