Filo.Protobuf.Http (Filo v0.2.0)

Copy Markdown View Source

Protobuf codec for the Hrana 3 over HTTP message envelopes: the pipeline and cursor request/response bodies and the per-request StreamRequest / StreamResponse / StreamResult types. Maps to and from the same Hrana maps the JSON pipeline uses (%{"baton" => ..., "requests" => [...]}, request maps tagged by "type"), so Filo.Plug can serve the v3-protobuf routes by swapping only the body codec. Shared structures come from Filo.Protobuf.

Summary

Functions

decode_cursor_req(bin)

@spec decode_cursor_req(binary()) :: map()

decode_cursor_resp(bin)

@spec decode_cursor_resp(binary()) :: map()

decode_pipeline_req(bin)

@spec decode_pipeline_req(binary()) :: map()

decode_pipeline_resp(bin)

@spec decode_pipeline_resp(binary()) :: map()

decode_stream_request(bin)

@spec decode_stream_request(binary()) :: map()

decode_stream_response(bin)

@spec decode_stream_response(binary()) :: map()

decode_stream_result(bin)

@spec decode_stream_result(binary()) :: map()

encode_cursor_req(body)

@spec encode_cursor_req(map()) :: iodata()

encode_cursor_resp(body)

@spec encode_cursor_resp(map()) :: iodata()

encode_pipeline_req(body)

@spec encode_pipeline_req(map()) :: iodata()

encode_pipeline_resp(body)

@spec encode_pipeline_resp(map()) :: iodata()

encode_stream_request(r)

@spec encode_stream_request(map()) :: iodata()

encode_stream_response(r)

@spec encode_stream_response(map()) :: iodata()

encode_stream_result(map)

@spec encode_stream_result(map()) :: iodata()