Current section

Files

Jump to
discord_gleam src discord_gleam@ws@packets@generic.erl
Raw

src/discord_gleam@ws@packets@generic.erl

-module(discord_gleam@ws@packets@generic).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([string_to_data/1]).
-export_type([generic_packet/0]).
-type generic_packet() :: {generic_packet, binary(), integer(), integer()}.
-file("/home/kristian/Desktop/SideProjects/discord_gleam/src/discord_gleam/ws/packets/generic.gleam", 8).
-spec string_to_data(binary()) -> generic_packet().
string_to_data(Encoded) ->
Decoder = gleam@dynamic:decode3(
fun(Field@0, Field@1, Field@2) -> {generic_packet, Field@0, Field@1, Field@2} end,
gleam@dynamic:field(<<"t"/utf8>>, fun gleam@dynamic:string/1),
gleam@dynamic:field(<<"s"/utf8>>, fun gleam@dynamic:int/1),
gleam@dynamic:field(<<"op"/utf8>>, fun gleam@dynamic:int/1)
),
Data = gleam@json:decode(Encoded, Decoder),
case Data of
{ok, Decoded} ->
Decoded;
{error, _} ->
{generic_packet, <<"error"/utf8>>, 0, 0}
end.