Current section

Files

Jump to
ssevents src ssevents@error.erl
Raw

src/ssevents@error.erl

-module(ssevents@error).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/ssevents/error.gleam").
-export([to_string/1]).
-export_type([sse_error/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.
?MODULEDOC(" Explicit error surface for `ssevents`.\n").
-type sse_error() :: invalid_utf8 |
{line_too_long, integer()} |
{event_too_large, integer()} |
{too_many_data_lines, integer()} |
{invalid_retry, binary()} |
{invalid_field, binary()} |
unexpected_end |
{unsupported_feature, binary()}.
-file("src/ssevents/error.gleam", 16).
-spec to_string(sse_error()) -> binary().
to_string(Error) ->
case Error of
invalid_utf8 ->
<<"invalid UTF-8 in SSE input"/utf8>>;
{line_too_long, Limit} ->
<<"line exceeds configured byte limit "/utf8,
(erlang:integer_to_binary(Limit))/binary>>;
{event_too_large, Limit@1} ->
<<"event exceeds configured byte limit "/utf8,
(erlang:integer_to_binary(Limit@1))/binary>>;
{too_many_data_lines, Limit@2} ->
<<"event exceeds configured data-line limit "/utf8,
(erlang:integer_to_binary(Limit@2))/binary>>;
{invalid_retry, Value} ->
<<<<"invalid retry value: \""/utf8, Value/binary>>/binary,
"\" (must be a non-negative integer)"/utf8>>;
{invalid_field, Field} ->
<<"invalid SSE field: "/utf8, Field/binary>>;
unexpected_end ->
<<"unexpected end of input"/utf8>>;
{unsupported_feature, Feature} ->
<<"unsupported feature: "/utf8, Feature/binary>>
end.