Packages

Pure Gleam implementation of the Apache Thrift Compact Protocol

Current section

Files

Jump to
thrifty src thrifty@types.erl
Raw

src/thrifty@types.erl

-module(thrifty@types).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/thrifty/types.gleam").
-export([decode_error_to_string/1]).
-export_type([reader/0, field_type/0, field_header/0, decode_error/0, reader_options/0, bool_element_policy/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-type reader() :: {reader, bitstring(), integer(), reader_options()}.
-type field_type() :: bool_true |
bool_false |
byte |
i16 |
i32 |
i64 |
double |
binary |
list |
set |
map |
struct |
stop.
-type field_header() :: {field_header, integer(), field_type()}.
-type decode_error() :: unexpected_end_of_input |
invalid_varint |
{invalid_field_type, integer(), integer()} |
{unsupported_type, integer()} |
{invalid_wire_format, binary()}.
-type reader_options() :: {reader_options,
integer(),
integer(),
integer(),
bool_element_policy()}.
-type bool_element_policy() :: accept_both | accept_canonical_only.
-file("src/thrifty/types.gleam", 71).
?DOC(
" Convert a `DecodeError` into a human readable string for logging or\n"
" metadata files.\n"
).
-spec decode_error_to_string(decode_error()) -> binary().
decode_error_to_string(Err) ->
case Err of
unexpected_end_of_input ->
<<"UnexpectedEndOfInput"/utf8>>;
invalid_varint ->
<<"InvalidVarint"/utf8>>;
{invalid_field_type, Expected, Got} ->
<<<<<<<<"InvalidFieldType("/utf8,
(erlang:integer_to_binary(Expected))/binary>>/binary,
","/utf8>>/binary,
(erlang:integer_to_binary(Got))/binary>>/binary,
")"/utf8>>;
{unsupported_type, Code} ->
<<<<"UnsupportedType("/utf8,
(erlang:integer_to_binary(Code))/binary>>/binary,
")"/utf8>>;
{invalid_wire_format, Msg} ->
<<<<"InvalidWireFormat("/utf8, Msg/binary>>/binary, ")"/utf8>>
end.