crux_structs v0.2.2 Crux.Structs.Channel View Source

Represents a Discord Channel Object.

List of where every property can be present:

PropertyText (0)DM (1)Voice (2)Group (3)Category (4)News (5)
application_idnononoyesnono
bitratenonoyesnonono
guild_idyesnoyesnoyesyes
iconnononoyesnono
idyesyesyesyesyesyes
last_message_idyesyesnoyesnoyes
last_pin_timestampyesyesnoyesnoyes
nameyesnoyesyesyesyes
nsfwyesnonononoyes
owner_idnononoyesnono
parent_idyesnoyesnonoyes
permission_overwritesyesnoyesnoyesyes
positionyesnoyesnoyesyes
rate_limit_per_useryesnonononono
recipientsnoyes
(One Element)
noyesnono
topicyesnoyesnoyesyes
type012345
user_limitnonoyesnonono

Differences opposed to the Discord API Object:

  • :recipients is a MapSet of user ids

Link to this section Summary

Types

All available types that can be resolved into a channel id.

All available types that can be resolved into a channel position.

t()

Functions

Creates a Crux.Structs.Channel.t/0 struct from raw data.

Resolves a position_resolvable/0 into a channel position.

Converts a Crux.Structs.Channel.t/0 into its discord mention format.

Link to this section Types

All available types that can be resolved into a channel id.

Link to this type

position_resolvable() View Source (since 0.2.1)
position_resolvable() ::
  Crux.Structs.Channel.t()
  | %{channel: id_resolvable(), position: integer()}
  | {id_resolvable(), integer()}
  | %{id: id_resolvable(), position: integer()}

All available types that can be resolved into a channel position.

Link to this type

t() View Source (since 0.1.0)
t() :: %Crux.Structs.Channel{
  application_id: Crux.Structs.Snowflake.t(),
  bitrate: integer(),
  guild_id: Crux.Structs.Snowflake.t(),
  icon: String.t(),
  id: Crux.Structs.Snowflake.t(),
  last_message_id: Crux.Structs.Snowflake.t(),
  last_pin_timestamp: String.t(),
  name: String.t(),
  nsfw: boolean(),
  owner_id: Crux.Structs.Snowflake.t(),
  parent_id: Crux.Structs.Snowflake.t(),
  permission_overwrites: %{
    optional(Crux.Structs.Snowflake.t()) => Crux.Structs.Overwrite.t()
  },
  position: integer(),
  rate_limit_per_user: integer(),
  recipients: MapSet.t(Crux.Structs.Snowflake.t()),
  topic: String.t(),
  type: integer(),
  user_limit: non_neg_integer()
}

Link to this section Functions

Link to this function

create(data) View Source (since 0.1.0)
create(data :: map()) :: t()

Creates a Crux.Structs.Channel.t/0 struct from raw data.

Automatically invoked by Crux.Structs.create/2

Link to this function

resolve_id(resolvable) View Source (since 0.2.1)
resolve_id(id_resolvable()) :: Crux.Structs.Snowflake.t() | nil

Resolves the id of a Crux.Structs.Channel.t/0.

Automatically invoked by Crux.Structs.resolve_id/2.

  iex> %Crux.Structs.Message{channel_id: 222079895583457280}
  ...> |> Crux.Structs.Channel.resolve_id()
  222079895583457280

  iex> %Crux.Structs.Channel{id: 222079895583457280}
  ...> |> Crux.Structs.Channel.resolve_id()
  222079895583457280

  iex> 222079895583457280
  ...> |> Crux.Structs.Channel.resolve_id()
  222079895583457280

  iex> "222079895583457280"
  ...> |> Crux.Structs.Channel.resolve_id()
  222079895583457280
Link to this function

resolve_position(resolvable) View Source (since 0.2.1)
resolve_position(position_resolvable()) ::
  %{id: Crux.Structs.Snowflake.t(), position: integer()} | nil

Resolves a position_resolvable/0 into a channel position.

Examples

  iex> %Crux.Structs.Channel{id: 222079895583457280, position: 5}
  ...> |> Crux.Structs.Channel.resolve_position()
  %{id: 222079895583457280, position: 5}

  iex> {%Crux.Structs.Channel{id: 222079895583457280}, 5}
  ...> |> Crux.Structs.Channel.resolve_position()
  %{id: 222079895583457280, position: 5}

  iex> {222079895583457280, 5}
  ...> |> Crux.Structs.Channel.resolve_position()
  %{id: 222079895583457280, position: 5}

  iex> %{id: 222079895583457280, position: 5}
  ...> |> Crux.Structs.Channel.resolve_position()
  %{id: 222079895583457280, position: 5}

  iex> {nil, 5}
  ...> |> Crux.Structs.Channel.resolve_position()
  nil
Link to this function

to_mention(channel) View Source (since 0.1.1)
to_mention(user :: Crux.Structs.Channel.t()) :: String.t()

Converts a Crux.Structs.Channel.t/0 into its discord mention format.

Example

iex> %Crux.Structs.Channel{id: 316880197314019329}
...> |> Crux.Structs.Channel.to_mention()
"<#316880197314019329>"