Client.Rpc
type 'a handler = H2.Body.Writer.t -> H2.Body.Reader.t -> 'a
val bidirectional_streaming :
f:(string Seq.writer -> string Seq.t -> 'a) ->
'a handler
bidirectional_streaming ~f write read
sets up the sending and receiving logic using write
and read
, then calls f
with a push function for requests and a stream of responses.
val client_streaming :
f:(string Seq.writer -> string option Eio.Promise.t -> 'a) ->
'a handler
client_streaming ~f write read
sets up the sending and receiving logic using write
and read
, then calls f
with a push function for requests and promise for the response.
server_streaming ~f enc write read
sets up the sending and receiving logic using write
and read
, then sends enc
and calls f
with a stream of responses.
val unary : f:(string option -> 'a) -> string -> 'a handler
unary ~f enc write read
sets up the sending and receiving logic using write
and read
, then sends enc
and calls f
with a promise for the response.