lib/grpc/stream.ex

defmodule GRPC.Stream do
  @moduledoc """
  Some useful operations for streams.
  """

  @doc """
  Get headers from server stream.

  For the client side, you should use `:return_headers` option to get headers,
  see `GRPC.Stub` for details.
  """
  @spec get_headers(GRPC.Server.Stream.t()) :: map
  def get_headers(%GRPC.Server.Stream{adapter: adapter} = stream) do
    headers = adapter.get_headers(stream.payload)
    GRPC.Transport.HTTP2.decode_headers(headers)
  end
end