Struct serenity::model::channel::PrivateChannel[][src]

#[non_exhaustive]
pub struct PrivateChannel { pub id: ChannelId, pub last_message_id: Option<MessageId>, pub last_pin_timestamp: Option<DateTime<Utc>>, pub kind: ChannelType, pub recipient: User, }
Expand description

A Direct Message text channel with another user.

Fields (Non-exhaustive)

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
id: ChannelId

The unique Id of the private channel.

Can be used to calculate the first message’s creation date.

last_message_id: Option<MessageId>

The Id of the last message sent.

last_pin_timestamp: Option<DateTime<Utc>>

Timestamp of the last time a Message was pinned.

kind: ChannelType

Indicator of the type of channel this is.

This should always be ChannelType::Private.

recipient: User

The recipient to the private channel.

Implementations

Broadcasts that the current user is typing to the recipient.

See ChannelId::broadcast_typing for more details.

React to a Message with a custom Emoji or unicode character.

Message::react may be a more suited method of reacting in most cases.

Errors

Returns Error::Http if the reaction cannot be added, or if a message with that Id does not exist.

Deletes the channel. This does not delete the contents of the channel, and is equivalent to closing a private channel on the client, which can be re-opened.

Deletes all messages by Ids from the given vector in the channel.

The minimum amount of messages is 2 and the maximum amount is 100.

Requires the Manage Messages permission.

Note: Messages that are older than 2 weeks can’t be deleted using this method.

Errors

Returns ModelError::BulkDeleteAmount if an attempt was made to delete either 0 or more than 100 messages.

Deletes all permission overrides in the channel from a member or role.

Note: Requires the Manage Channel permission.

Deletes the given Reaction from the channel.

Note: In private channels, the current user may only delete it’s own reactions.

Errors

Returns Error::Http if the reaction is not from the current user.

Edits a Message in the channel given its Id.

Message editing preserves all unchanged message data.

Refer to the documentation for EditMessage for more information regarding message restrictions and requirements.

Note: Requires that the current user be the author of the message.

Errors

Returns a ModelError::MessageTooLong if the content of the message is over the the limit, containing the number of unicode code points over the limit.

Returns Error::Http if the current user is not the owner of the message.

Determines if the channel is NSFW.

Note: This method is for consistency. This will always return false, due to DMs not being considered NSFW.

Gets a message from the channel.

Errors

Returns Error::Http if a message with that Id does not exist in this channel.

Gets messages from the channel.

Refer to GetMessages for more information on how to use builder.

Errors

Returns Error::Http if an invalid value is set in the builder.

Returns “DM with $username#discriminator”.

Gets the list of Users who have reacted to a Message with a certain Emoji.

The default limit is 50 - specify otherwise to receive a different maximum number of users. The maximum that may be retrieve at a time is 100, if a greater number is provided then it is automatically reduced.

The optional after attribute is to retrieve the users after a certain user. This is useful for pagination.

Errors

Returns Error::Http if a message with the given Id does not exist in the channel.

Pins a Message to the channel.

Errors

Returns Error::Http if the number of pinned messages would exceed the 50 message limit.

Retrieves the list of messages that have been pinned in the private channel.

Sends a message with just the given message content in the channel.

Errors

Returns a ModelError::MessageTooLong if the content of the message is over the above limit, containing the number of unicode code points over the limit.

Sends (a) file(s) along with optional message contents.

Refer to ChannelId::send_files for examples and more information.

The [Attach Files] and Send Messages permissions are required.

Note: Message contents must be under 2000 unicode code points.

Errors

If the content of the message is over the above limit, then a ModelError::MessageTooLong will be returned, containing the number of unicode code points over the limit.

Sends a message to the channel with the given content.

Refer to the documentation for CreateMessage for more information regarding message restrictions and requirements.

Errors

Returns a ModelError::MessageTooLong if the content of the message is over the above limit, containing the number of unicode code points over the limit.

Starts typing in the channel for an indefinite period of time.

Returns Typing that is used to trigger the typing. Typing::stop must be called on the returned struct to stop typing. Note that on some clients, typing may persist for a few seconds after Typing::stop is called. Typing is also stopped when the struct is dropped.

If a message is sent while typing is triggered, the user will stop typing for a brief period of time and then resume again until either Typing::stop is called or the struct is dropped.

This should rarely be used for bots, although it is a good indicator that a long-running command is still being processed.

Examples
// Initiate typing (assuming http is `Arc<Http>` and `channel` is bound)
let typing = channel.start_typing(&http)?;

// Run some long-running process
long_process();

// Stop typing
typing.stop();
Errors

May return Error::Http if the current user cannot send a direct message to this user.

Unpins a Message in the channel given by its Id.

Errors

Returns Error::Http if the current user lacks permission, if the message was deleted, or if the channel already has the limit of 50 pinned messages.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Deserialize this value from the given Serde deserializer. Read more

Formats the private channel, displaying the recipient’s username.

Performs the conversion.

Gets the Id of a private channel.

Gets the Id of a private channel.

Creates a Mention that will be able to notify or create a link to the item. Read more

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Performs the conversion.

Should always be Self

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

Converts the given value to a String. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more