Enum serenity::model::channel::Channel[][src]

pub enum Channel {
    Group(Arc<RwLock<Group>>),
    Guild(Arc<RwLock<GuildChannel>>),
    Private(Arc<RwLock<PrivateChannel>>),
    Category(Arc<RwLock<ChannelCategory>>),
}

A container for any channel.

Variants

A group. A group comprises of only one channel.

A text or voice channel within a Guild.

A private channel to another User. No other users may access the channel. For multi-user "private channels", use a group.

A category of GuildChannels

Methods

impl Channel
[src]

Converts from Channel to Option<Arc<RwLock<Group>>>.

Converts self into an Option<Arc<RwLock<Group>>>, consuming self, and discarding a GuildChannel, PrivateChannel, or ChannelCategory, if any.

Examples

Basic usage:

match channel.group() {
    Some(group_lock) => {
        if let Some(ref name) = group_lock.read().name {
            println!("It's a group named {}!", name);
        } else {
             println!("It's an unnamed group!");
        }
    },
    None => { println!("It's not a group!"); },
}
fn main() {}

Converts from Channel to Option<Arc<RwLock<GuildChannel>>>.

Converts self into an Option<Arc<RwLock<GuildChannel>>>, consuming self, and discarding a Group, PrivateChannel, or ChannelCategory, if any.

Examples

Basic usage:

match channel.guild() {
    Some(guild_lock) => {
        println!("It's a guild named {}!", guild_lock.read().name);
    },
    None => { println!("It's not a guild!"); },
}
fn main() {}

Converts from Channel to Option<Arc<RwLock<PrivateChannel>>>.

Converts self into an Option<Arc<RwLock<PrivateChannel>>>, consuming self, and discarding a Group, GuildChannel, or ChannelCategory, if any.

Examples

Basic usage:

match channel.private() {
    Some(private_lock) => {
        let private = private_lock.read();
        let recipient_lock = &private.recipient;
        let recipient = recipient_lock.read();
        println!("It's a private channel with {}!", recipient.name);
    },
    None => { println!("It's not a private channel!"); },
}
fn main() {}

Converts from Channel to Option<Arc<RwLock<ChannelCategory>>>.

Converts self into an Option<Arc<RwLock<ChannelCategory>>>, consuming self, and discarding a Group, GuildChannel, or PrivateChannel, if any.

Examples

Basic usage:

match channel.category() {
    Some(category_lock) => {
        println!("It's a category named {}!", category_lock.read().name);
    },
    None => { println!("It's not a category!"); },
}
fn main() {}

Deprecated since 0.4.2

: Use the inner channel's method

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

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

Requires the Add Reactions permission, if the current user is the first user to perform a react with a certain emoji.

Deletes the inner channel.

Note: There is no real function as deleting a Group. The closest functionality is leaving it.

Deprecated since 0.4.2

: Use the inner channel's method

Deletes a Message given its Id.

Refer to Message::delete for more information.

Requires the Manage Messages permission, if the current user is not the author of the message.

Deprecated since 0.4.2

: Use the inner channel's method

Deletes the given Reaction from the channel.

Note: Requires the Manage Messages permission, if the current user did not perform the reaction.

Deprecated since 0.4.2

: Use the inner channel's method

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.

Determines if the channel is NSFW.

Refer to utils::is_nsfw for more details.

Deprecated since 0.4.2

: Use the inner channel's method

Gets a message from the channel.

Requires the Read Message History permission.

Deprecated since 0.4.2

: Use the inner channel's method

Gets messages from the channel.

Requires the Read Message History permission.

Examples

This example is not tested
use serenity::model::MessageId;

let id = MessageId(81392407232380928);

// Maximum is 100.
let _messages = channel.messages(|g| g.after(id).limit(100));

Deprecated since 0.4.2

: Use the inner channel's method

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.

Note: Requires the Read Message History permission.

Retrieves the Id of the inner Group, GuildChannel, or PrivateChannel.

Deprecated since 0.4.2

: Use the inner channel's method

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.

Deprecated since 0.4.2

: Use the inner channel's method

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 ClientError::MessageTooLong will be returned, containing the number of unicode code points over the limit.

Deprecated since 0.4.2

: Use the inner channel's method

Sends a message to the channel.

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

The Send Messages permission is required.

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

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.

Deprecated since 0.4.2

: Use the inner channel's method

Unpins a Message in the channel given by its Id.

Requires the Manage Messages permission.

Trait Implementations

impl From<Channel> for ChannelId
[src]

Gets the Id of a Channel.

impl<'a> From<&'a Channel> for ChannelId
[src]

Gets the Id of a Channel.

impl Clone for Channel
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Debug for Channel
[src]

Formats the value using the given formatter. Read more

impl<'de> Deserialize<'de> for Channel
[src]

Deserialize this value from the given Serde deserializer. Read more

impl Serialize for Channel
[src]

Serialize this value into the given Serde serializer. Read more

impl Display for Channel
[src]

Formats the channel into a "mentioned" string.

This will return a different format for each type of channel:

impl Mentionable for Channel
[src]

Creates a mentionable string, that will be able to notify and/or create a link to the item. Read more

impl FromStr for Channel
[src]

The associated error which can be returned from parsing.

Parses a string s to return a value of this type. Read more

Auto Trait Implementations

impl Send for Channel

impl Sync for Channel