lib/grpc/codec/web_text.ex
defmodule GRPC.Codec.WebText do
@behaviour GRPC.Codec
def name() do
"text"
end
def encode(struct) do
Protobuf.Encoder.encode(struct)
end
def pack_for_channel(data) when is_list(data) do
data
|> IO.iodata_to_binary()
|> Base.encode64()
end
def pack_for_channel(binary) do
Base.encode64(binary)
end
def unpack_from_channel(binary) do
Base.decode64!(binary)
end
def decode(binary, module) do
Protobuf.Decoder.decode(binary, module)
end
end