Skip to content

Commit

Permalink
Document generated GRPC.Stub function arguments
Browse files Browse the repository at this point in the history
Adds clarifying documentation for how functions are generated for GRPC.Stub

Closes elixir-grpc#339
  • Loading branch information
davydog187 committed Nov 28, 2023
1 parent ab18c93 commit 5a958f3
Showing 1 changed file with 6 additions and 18 deletions.
24 changes: 6 additions & 18 deletions lib/grpc/stub.ex
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,12 @@ defmodule GRPC.Stub do
then use `recv/1` to receive the reply. And if the reply is streaming, `recv/1`
returns a `Stream`.
You can refer to `call/6` for doc of your RPC functions.
## RPC Functions
RPC functions generated via the GRPC.Service.rpc/3 macro are exposed in `GRPC.Stub`
module exposing that service. The following function types are generated:
### Unary
"""
alias GRPC.Channel
@insecure_scheme "http"
Expand Down Expand Up @@ -219,23 +224,6 @@ defmodule GRPC.Stub do
end

@doc false
# # The actual function invoked when invoking an RPC function.
#
# Returns
#
# * Unary calls. `{:ok, reply} | {:ok, headers_map} | {:error, error}`
# * Client streaming. A `GRPC.Client.Stream`
# * Server streaming. `{:ok, Enumerable.t} | {:ok, Enumerable.t, trailers_map} | {:error, error}`
#
# Options
#
# * `:timeout` - request timeout. Default is 10s for unary calls and `:infinity` for
# client or server streaming calls
# * `:deadline` - when the request is timeout, will override timeout
# * `:metadata` - a map, your custom metadata
# * `:return_headers` - default is false. When it's true, a three elem tuple will be returned
# with the last elem being a map of headers `%{headers: headers, trailers: trailers}`(unary) or
# `%{headers: headers}`(server streaming)
def call(_service_mod, rpc, %{channel: channel} = stream, request, opts) do
{_, {req_mod, req_stream}, {res_mod, response_stream}} = rpc

Expand Down

0 comments on commit 5a958f3

Please sign in to comment.