Current section
Files
Jump to
Current section
Files
src/shimmer@types@hello_event.erl
-module(shimmer@types@hello_event).
-compile(no_auto_import).
-export([from_json_string/1, from_dynamic/1]).
-export_type([hello_event/0]).
-type hello_event() :: {hello_event, integer()}.
-spec from_json_string(binary()) -> {ok, hello_event()} |
{error, shimmer@internal@error:shimmer_error()}.
from_json_string(Encoded) ->
case begin
_pipe = gleam@json:decode(Encoded),
gleam@result:map_error(_pipe, fun(A) -> {invalid_json, A} end)
end of
{error, _try} -> {error, _try};
{ok, Data} ->
Data@1 = gleam@dynamic:from(Data),
case from_dynamic(Data@1) of
{error, _try@1} -> {error, _try@1};
{ok, Event} ->
{ok, Event}
end
end.
-spec from_dynamic(gleam@dynamic:dynamic()) -> {ok, hello_event()} |
{error, shimmer@internal@error:shimmer_error()}.
from_dynamic(Data) ->
case begin
_pipe = case gleam@dynamic:field(Data, <<"heartbeat_interval"/utf8>>) of
{error, _try} -> {error, _try};
{ok, Heartbeat_interval} ->
case gleam@dynamic:int(Heartbeat_interval) of
{error, _try@1} -> {error, _try@1};
{ok, Heartbeat_interval@1} ->
{ok, {hello_event, Heartbeat_interval@1}}
end
end,
gleam@result:map_error(_pipe, fun(A) -> {invalid_format, A} end)
end of
{error, _try@2} -> {error, _try@2};
{ok, Event} ->
{ok, Event}
end.