Grpc_spec
module Value_mode : sig ... end
module Rpc : sig ... end
module Protoable : sig ... end
module Protospec : sig ... end
module type S = sig ... end
type ('request, 'request_mode, 'response, 'response_mode) t =
(module S
with type request_mode = 'request_mode
and type response_mode = 'response_mode
and type Request.t = 'request
and type Response.t = 'response)
Some type aliases to help managing the complexity of the types.
type ('request, 'response) unary =
('request, Value_mode.unary, 'response, Value_mode.unary) t
type ('request, 'response) server_streaming =
('request, Value_mode.unary, 'response, Value_mode.stream) t
type ('request, 'response) client_streaming =
('request, Value_mode.stream, 'response, Value_mode.unary) t
type ('request, 'response) bidirectional_streaming =
('request, Value_mode.stream, 'response, Value_mode.stream) t
module Unary : sig ... end
module Client_streaming : sig ... end
module Server_streaming : sig ... end
module Bidirectional_streaming : sig ... end
The rest of the module contains utils to help creating what is required by the Grpc
library.
val client_rpc :
('request, 'request_mode, 'response, 'response_mode) t ->
('request, 'request_mode, 'response, 'response_mode) Grpc.Rpc.Client_rpc.t
client_rpc
is used by the implementation of Grpc_client
.
val server_rpc :
('request, 'request_mode, 'response, 'response_mode) t ->
('request, 'request_mode, 'response, 'response_mode, Grpc.Rpc.Service_spec.t)
Grpc.Rpc.Server_rpc.t
server_rpc
is used by Grpc_server
to furnish the server implementation for a given RPC.
module Private : sig ... end
The Private
module is not meant to be used by the users of the library directly. It is exported for tests.