crux_structs v0.2.3 Crux.Structs.Overwrite View Source
Represents a Discord Overwrite Object.
Link to this section Summary
Types
All available types that can be resolved into a target for a permission overwrite
Functions
Creates a t:Crux.Structs.Overwrite.t/0
struct from raw data.
Resolves a t:target_resolvable/0
into an overwrite target.
Link to this section Types
Specs
t() :: %Crux.Structs.Overwrite{ allow: integer(), deny: integer(), id: Crux.Structs.Snowflake.t(), type: String.t() }
Specs
target_resolvable() :: Crux.Structs.Overwrite.t() | Crux.Structs.Role.t() | Crux.Structs.User.id_resolvable()
All available types that can be resolved into a target for a permission overwrite
Link to this section Functions
Specs
Creates a t:Crux.Structs.Overwrite.t/0
struct from raw data.
Automatically invoked by
Crux.Structs.create/2
.
Specs
resolve_target(target_resolvable()) :: {String.t() | :unknown, Crux.Structs.Snowflake.t()}
Resolves a t:target_resolvable/0
into an overwrite target.
Note that an id or string of it returns
:unknown
as type.
Examples
iex> %Crux.Structs.Overwrite{type: "member", id: 218348062828003328}
...> |> Crux.Structs.Overwrite.resolve_target()
{"member", 218348062828003328}
iex> %Crux.Structs.Role{id: 376146940762783746}
...> |> Crux.Structs.Overwrite.resolve_target()
{"role", 376146940762783746}
iex> %Crux.Structs.User{id: 218348062828003328}
...> |> Crux.Structs.Overwrite.resolve_target()
{"member", 218348062828003328}
iex> %Crux.Structs.Member{user: 218348062828003328}
...> |> Crux.Structs.Overwrite.resolve_target()
{"member", 218348062828003328}
iex> %Crux.Structs.Message{author: %Crux.Structs.User{id: 218348062828003328}}
...> |> Crux.Structs.Overwrite.resolve_target()
{"member", 218348062828003328}
iex> %Crux.Structs.VoiceState{user_id: 218348062828003328}
...> |> Crux.Structs.Overwrite.resolve_target()
{"member", 218348062828003328}
iex> 218348062828003328
...> |> Crux.Structs.Overwrite.resolve_target()
{:unknown, 218348062828003328}
iex> "218348062828003328"
...> |> Crux.Structs.Overwrite.resolve_target()
{:unknown, 218348062828003328}
iex> nil
...> |> Crux.Structs.Overwrite.resolve_target()
nil