Current section
Files
Jump to
Current section
Files
src/discord_gleam@ws@packets@message_delete.erl
-module(discord_gleam@ws@packets@message_delete).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([string_to_data/1]).
-export_type([message_delete_packet_data/0, message_delete_packet/0]).
-type message_delete_packet_data() :: {message_delete_packet_data,
binary(),
binary(),
binary()}.
-type message_delete_packet() :: {message_delete_packet,
binary(),
integer(),
integer(),
message_delete_packet_data()}.
-file("/home/kristian/Desktop/SideProjects/discord_gleam/src/discord_gleam/ws/packets/message_delete.gleam", 18).
-spec string_to_data(binary()) -> {ok, message_delete_packet()} |
{error, binary()}.
string_to_data(Encoded) ->
Decoder = gleam@dynamic:decode4(
fun(Field@0, Field@1, Field@2, Field@3) -> {message_delete_packet, Field@0, Field@1, Field@2, Field@3} 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),
gleam@dynamic:field(
<<"d"/utf8>>,
gleam@dynamic:decode3(
fun(Field@0, Field@1, Field@2) -> {message_delete_packet_data, Field@0, Field@1, Field@2} end,
gleam@dynamic:field(
<<"id"/utf8>>,
fun discord_gleam@discord@snowflake:from_dynamic/1
),
gleam@dynamic:field(
<<"guild_id"/utf8>>,
fun discord_gleam@discord@snowflake:from_dynamic/1
),
gleam@dynamic:field(
<<"channel_id"/utf8>>,
fun discord_gleam@discord@snowflake:from_dynamic/1
)
)
)
),
_pipe = gleam@json:decode(Encoded, Decoder),
gleam@result:map_error(
_pipe,
fun(_) -> <<"Failed to decode MessagePacket"/utf8>> end
).