-module(discord_gleam@discord@intents). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/discord_gleam/discord/intents.gleam"). -export([intents_to_bitfield/1, none/0, default/0, default_with_message_intent/0, all/0]). -export_type([intents/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. -type intents() :: {intents, boolean(), boolean(), boolean(), boolean(), boolean(), boolean(), boolean(), boolean(), boolean(), boolean(), boolean(), boolean(), boolean(), boolean(), boolean(), boolean(), boolean(), boolean(), boolean(), boolean(), boolean()}. -file("src/discord_gleam/discord/intents.gleam", 31). -spec add_intent_bit(integer(), boolean(), integer()) -> integer(). add_intent_bit(Bitfield, Intent_enabled, Bit_position) -> case Intent_enabled of false -> Bitfield; true -> erlang:'bor'(Bitfield, erlang:'bsl'(1, Bit_position)) end. -file("src/discord_gleam/discord/intents.gleam", 43). ?DOC(" Calculate a bitfield from a set of intents.\n"). -spec intents_to_bitfield(intents()) -> integer(). intents_to_bitfield(Intents) -> _pipe = 0, _pipe@1 = add_intent_bit(_pipe, erlang:element(2, Intents), 0), _pipe@2 = add_intent_bit(_pipe@1, erlang:element(3, Intents), 1), _pipe@3 = add_intent_bit(_pipe@2, erlang:element(4, Intents), 2), _pipe@4 = add_intent_bit(_pipe@3, erlang:element(5, Intents), 3), _pipe@5 = add_intent_bit(_pipe@4, erlang:element(6, Intents), 4), _pipe@6 = add_intent_bit(_pipe@5, erlang:element(7, Intents), 5), _pipe@7 = add_intent_bit(_pipe@6, erlang:element(8, Intents), 6), _pipe@8 = add_intent_bit(_pipe@7, erlang:element(9, Intents), 7), _pipe@9 = add_intent_bit(_pipe@8, erlang:element(10, Intents), 8), _pipe@10 = add_intent_bit(_pipe@9, erlang:element(11, Intents), 9), _pipe@11 = add_intent_bit(_pipe@10, erlang:element(12, Intents), 10), _pipe@12 = add_intent_bit(_pipe@11, erlang:element(13, Intents), 11), _pipe@13 = add_intent_bit(_pipe@12, erlang:element(14, Intents), 12), _pipe@14 = add_intent_bit(_pipe@13, erlang:element(15, Intents), 13), _pipe@15 = add_intent_bit(_pipe@14, erlang:element(16, Intents), 14), _pipe@16 = add_intent_bit(_pipe@15, erlang:element(17, Intents), 15), _pipe@17 = add_intent_bit(_pipe@16, erlang:element(18, Intents), 16), _pipe@18 = add_intent_bit(_pipe@17, erlang:element(19, Intents), 20), _pipe@19 = add_intent_bit(_pipe@18, erlang:element(20, Intents), 21), _pipe@20 = add_intent_bit(_pipe@19, erlang:element(21, Intents), 24), add_intent_bit(_pipe@20, erlang:element(22, Intents), 25). -file("src/discord_gleam/discord/intents.gleam", 123). ?DOC( " Disable all the intents, use this if you want to receive no events other than `interaction_create` or `ready`. \\\n" " Useful if you have a bot with slash commands only, that doesn't need to listen to events.\n" ). -spec none() -> intents(). none() -> {intents, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false}. -file("src/discord_gleam/discord/intents.gleam", 77). ?DOC( " Enable a set of default intents, which are usually used by most bots. \\\n" " Does not include `message_content` intent, as it's a privileged intent.\n" "\n" " This enables the following intents:\n" " - `guilds`\n" " - `guild_messages`\n" " - `guild_message_reactions`\n" " - `direct_messages`\n" " - `direct_message_reactions`\n" ). -spec default() -> intents(). default() -> _record = none(), {intents, true, erlang:element(3, _record), erlang:element(4, _record), erlang:element(5, _record), erlang:element(6, _record), erlang:element(7, _record), erlang:element(8, _record), erlang:element(9, _record), erlang:element(10, _record), true, true, erlang:element(13, _record), true, true, erlang:element(16, _record), erlang:element(17, _record), erlang:element(18, _record), erlang:element(19, _record), erlang:element(20, _record), erlang:element(21, _record), erlang:element(22, _record)}. -file("src/discord_gleam/discord/intents.gleam", 90). ?DOC( " Enable a set of default intents, which are usually used by most bots. \\\n" " But also includes the `message_content` intent (privileged).\n" ). -spec default_with_message_intent() -> intents(). default_with_message_intent() -> _record = default(), {intents, erlang:element(2, _record), erlang:element(3, _record), erlang:element(4, _record), erlang:element(5, _record), erlang:element(6, _record), erlang:element(7, _record), erlang:element(8, _record), erlang:element(9, _record), erlang:element(10, _record), erlang:element(11, _record), erlang:element(12, _record), erlang:element(13, _record), erlang:element(14, _record), erlang:element(15, _record), erlang:element(16, _record), true, erlang:element(18, _record), erlang:element(19, _record), erlang:element(20, _record), erlang:element(21, _record), erlang:element(22, _record)}. -file("src/discord_gleam/discord/intents.gleam", 95). ?DOC(" Enable all the intents, use this if you want to receive all supported events.\n"). -spec all() -> intents(). all() -> {intents, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true}.