Grpc_specmodule Value_mode : sig ... endmodule Rpc : sig ... endmodule Protoable : sig ... endmodule Protospec : sig ... endmodule type S = sig ... endtype ('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) ttype ('request, 'response) server_streaming =
('request, Value_mode.unary, 'response, Value_mode.stream) ttype ('request, 'response) client_streaming =
('request, Value_mode.stream, 'response, Value_mode.unary) ttype ('request, 'response) bidirectional_streaming =
('request, Value_mode.stream, 'response, Value_mode.stream) tmodule Unary : sig ... endmodule Client_streaming : sig ... endmodule Server_streaming : sig ... endmodule Bidirectional_streaming : sig ... endThe 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.tclient_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.tserver_rpc is used by Grpc_server to furnish the server implementation for a given RPC.
module Private : sig ... endThe Private module is not meant to be used by the users of the library directly. It is exported for tests.