Current section
Files
Jump to
Current section
Files
src/shimmer@intents.erl
-module(shimmer@intents).
-compile(no_auto_import).
-export([intent_to_int/1, intents_to_int/1, unprivileged/0, all/0, default/0]).
-export_type([intent/0]).
-type intent() :: guilds |
guild_members |
guild_bans |
guild_emojis_and_stickers |
guild_integrations |
guild_webhooks |
guild_invites |
guild_voice_states |
guild_presences |
guild_messages |
guild_message_reactions |
guild_message_typing |
direct_messages |
direct_message_reactions |
direct_message_typing |
message_content |
guild_scheduled_events |
guild_auto_moderation |
guild_auto_moderation_execution.
-spec intent_to_int(intent()) -> integer().
intent_to_int(Intent) ->
case Intent of
guilds ->
_pipe = 1,
gleam@bitwise:shift_left(_pipe, 0);
guild_members ->
_pipe@1 = 1,
gleam@bitwise:shift_left(_pipe@1, 1);
guild_bans ->
_pipe@2 = 1,
gleam@bitwise:shift_left(_pipe@2, 2);
guild_emojis_and_stickers ->
_pipe@3 = 1,
gleam@bitwise:shift_left(_pipe@3, 3);
guild_integrations ->
_pipe@4 = 1,
gleam@bitwise:shift_left(_pipe@4, 4);
guild_webhooks ->
_pipe@5 = 1,
gleam@bitwise:shift_left(_pipe@5, 5);
guild_invites ->
_pipe@6 = 1,
gleam@bitwise:shift_left(_pipe@6, 6);
guild_voice_states ->
_pipe@7 = 1,
gleam@bitwise:shift_left(_pipe@7, 7);
guild_presences ->
_pipe@8 = 1,
gleam@bitwise:shift_left(_pipe@8, 8);
guild_messages ->
_pipe@9 = 1,
gleam@bitwise:shift_left(_pipe@9, 9);
guild_message_reactions ->
_pipe@10 = 1,
gleam@bitwise:shift_left(_pipe@10, 10);
guild_message_typing ->
_pipe@11 = 1,
gleam@bitwise:shift_left(_pipe@11, 11);
direct_messages ->
_pipe@12 = 1,
gleam@bitwise:shift_left(_pipe@12, 12);
direct_message_reactions ->
_pipe@13 = 1,
gleam@bitwise:shift_left(_pipe@13, 13);
direct_message_typing ->
_pipe@14 = 1,
gleam@bitwise:shift_left(_pipe@14, 14);
message_content ->
_pipe@15 = 1,
gleam@bitwise:shift_left(_pipe@15, 15);
guild_scheduled_events ->
_pipe@16 = 1,
gleam@bitwise:shift_left(_pipe@16, 16);
guild_auto_moderation ->
_pipe@17 = 1,
gleam@bitwise:shift_left(_pipe@17, 20);
guild_auto_moderation_execution ->
_pipe@18 = 1,
gleam@bitwise:shift_left(_pipe@18, 21)
end.
-spec intents_to_int(list(intent())) -> integer().
intents_to_int(Intents) ->
_pipe = Intents,
_pipe@1 = gleam@list:map(_pipe, fun intent_to_int/1),
gleam@list:fold(_pipe@1, 0, fun(A, B) -> gleam@bitwise:'or'(A, B) end).
-spec unprivileged() -> list(intent()).
unprivileged() ->
[guilds,
guild_bans,
guild_emojis_and_stickers,
guild_integrations,
guild_webhooks,
guild_invites,
guild_voice_states,
guild_messages,
guild_message_reactions,
guild_message_typing,
direct_messages,
direct_message_reactions,
direct_message_typing,
guild_scheduled_events,
guild_auto_moderation,
guild_auto_moderation_execution].
-spec all() -> list(intent()).
all() ->
[guilds,
guild_members,
guild_bans,
guild_emojis_and_stickers,
guild_integrations,
guild_webhooks,
guild_invites,
guild_voice_states,
guild_presences,
guild_messages,
guild_message_reactions,
guild_message_typing,
direct_messages,
direct_message_reactions,
direct_message_typing,
message_content,
guild_scheduled_events,
guild_auto_moderation,
guild_auto_moderation_execution].
-spec default() -> list(intent()).
default() ->
[guilds].