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]

[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!"); },
}

[src]

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:

let channel = ChannelId(0).get().unwrap();
match channel.guild() {
    Some(guild_lock) => {
        println!("It's a guild named {}!", guild_lock.read().name);
    },
    None => { println!("It's not a guild!"); },
}

[src]

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!"); },
}

[src]

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!"); },
}

[src]

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.

[src]

Deletes the inner channel.

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

[src]

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.

[src]

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.

[src]

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.

[src]

Determines if the channel is NSFW.

Refer to utils::is_nsfw for more details.

[src]

Deprecated since 0.4.2

: Use the inner channel's method

Gets a message from the channel.

Requires the Read Message History permission.

[src]

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));

[src]

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.

[src]

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

[src]

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.

[src]

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.

[src]

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.

[src]

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]

[src]

Gets the Id of a Channel.

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

[src]

Gets the Id of a Channel.

impl Clone for Channel
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl Debug for Channel
[src]

[src]

Formats the value using the given formatter. Read more

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

[src]

Deserialize this value from the given Serde deserializer. Read more

impl Serialize for Channel
[src]

[src]

Serialize this value into the given Serde serializer. Read more

impl Display for Channel
[src]

[src]

Formats the channel into a "mentioned" string.

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

impl Mentionable for Channel
[src]

[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.

[src]

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

Auto Trait Implementations

impl Send for Channel

impl Sync for Channel