-module(kitazith@allowed_mentions). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/kitazith/allowed_mentions.gleam"). -export([new/0, with_parse/2, with_roles/2, with_users/2, with_replied_user/2, to_json/1]). -export_type([allowed_mentions/0, allowed_mention/0]). -type allowed_mentions() :: {allowed_mentions, gleam@option:option(list(allowed_mention())), gleam@option:option(list(kitazith@snowflake:snowflake())), gleam@option:option(list(kitazith@snowflake:snowflake())), gleam@option:option(boolean())}. -type allowed_mention() :: roles | users | everyone. -file("src/kitazith/allowed_mentions.gleam", 28). -spec new() -> allowed_mentions(). new() -> {allowed_mentions, none, none, none, none}. -file("src/kitazith/allowed_mentions.gleam", 32). -spec with_parse(allowed_mentions(), list(allowed_mention())) -> allowed_mentions(). with_parse(Mentions, Parse) -> {allowed_mentions, {some, Parse}, erlang:element(3, Mentions), erlang:element(4, Mentions), erlang:element(5, Mentions)}. -file("src/kitazith/allowed_mentions.gleam", 39). -spec with_roles(allowed_mentions(), list(kitazith@snowflake:snowflake())) -> allowed_mentions(). with_roles(Mentions, Roles) -> {allowed_mentions, erlang:element(2, Mentions), {some, Roles}, erlang:element(4, Mentions), erlang:element(5, Mentions)}. -file("src/kitazith/allowed_mentions.gleam", 46). -spec with_users(allowed_mentions(), list(kitazith@snowflake:snowflake())) -> allowed_mentions(). with_users(Mentions, Users) -> {allowed_mentions, erlang:element(2, Mentions), erlang:element(3, Mentions), {some, Users}, erlang:element(5, Mentions)}. -file("src/kitazith/allowed_mentions.gleam", 53). -spec with_replied_user(allowed_mentions(), boolean()) -> allowed_mentions(). with_replied_user(Mentions, Replied_user) -> {allowed_mentions, erlang:element(2, Mentions), erlang:element(3, Mentions), erlang:element(4, Mentions), {some, Replied_user}}. -file("src/kitazith/allowed_mentions.gleam", 75). -spec allowed_mention_to_json(allowed_mention()) -> gleam@json:json(). allowed_mention_to_json(Mention) -> case Mention of roles -> gleam@json:string(<<"roles"/utf8>>); users -> gleam@json:string(<<"users"/utf8>>); everyone -> gleam@json:string(<<"everyone"/utf8>>) end. -file("src/kitazith/allowed_mentions.gleam", 60). -spec to_json(allowed_mentions()) -> gleam@json:json(). to_json(M) -> kitazith@internal@json_helper:object_omit_none( [kitazith@internal@json_helper:optional( <<"parse"/utf8>>, erlang:element(2, M), fun(Parse) -> gleam@json:array(Parse, fun allowed_mention_to_json/1) end ), kitazith@internal@json_helper:optional( <<"roles"/utf8>>, erlang:element(3, M), fun(Roles) -> gleam@json:array(Roles, fun kitazith@snowflake:to_json/1) end ), kitazith@internal@json_helper:optional( <<"users"/utf8>>, erlang:element(4, M), fun(Users) -> gleam@json:array(Users, fun kitazith@snowflake:to_json/1) end ), kitazith@internal@json_helper:optional( <<"replied_user"/utf8>>, erlang:element(5, M), fun gleam@json:bool/1 )] ).