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
Group(Arc<RwLock<Group>>)
A group. A group comprises of only one channel.
Guild(Arc<RwLock<GuildChannel>>)
Private(Arc<RwLock<PrivateChannel>>)
A private channel to another User
. No other users may access the
channel. For multi-user "private channels", use a group.
Category(Arc<RwLock<ChannelCategory>>)
A category of GuildChannel
s
Methods
impl Channel
[src]
impl Channel
pub fn group(self) -> Option<Arc<RwLock<Group>>>
[src]
pub fn group(self) -> Option<Arc<RwLock<Group>>>
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() {}
pub fn guild(self) -> Option<Arc<RwLock<GuildChannel>>>
[src]
pub fn guild(self) -> Option<Arc<RwLock<GuildChannel>>>
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() {}
pub fn private(self) -> Option<Arc<RwLock<PrivateChannel>>>
[src]
pub fn private(self) -> Option<Arc<RwLock<PrivateChannel>>>
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() {}
pub fn category(self) -> Option<Arc<RwLock<ChannelCategory>>>
[src]
pub fn category(self) -> Option<Arc<RwLock<ChannelCategory>>>
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() {}
pub fn create_reaction<M, R>(
&self,
message_id: M,
reaction_type: R
) -> Result<()> where
M: Into<MessageId>,
R: Into<ReactionType>,
[src]
pub fn create_reaction<M, R>(
&self,
message_id: M,
reaction_type: R
) -> Result<()> where
M: Into<MessageId>,
R: Into<ReactionType>,
: 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.
pub fn delete(&self) -> Result<()>
[src]
pub fn delete(&self) -> Result<()>
Deletes the inner channel.
Note: There is no real function as deleting a Group
. The
closest functionality is leaving it.
pub fn delete_message<M: Into<MessageId>>(&self, message_id: M) -> Result<()>
[src]
pub fn delete_message<M: Into<MessageId>>(&self, message_id: M) -> Result<()>
: 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.
pub fn delete_reaction<M, R>(
&self,
message_id: M,
user_id: Option<UserId>,
reaction_type: R
) -> Result<()> where
M: Into<MessageId>,
R: Into<ReactionType>,
[src]
pub fn delete_reaction<M, R>(
&self,
message_id: M,
user_id: Option<UserId>,
reaction_type: R
) -> Result<()> where
M: Into<MessageId>,
R: Into<ReactionType>,
: 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.
pub fn edit_message<F, M>(&self, message_id: M, f: F) -> Result<Message> where
F: FnOnce(EditMessage) -> EditMessage,
M: Into<MessageId>,
[src]
pub fn edit_message<F, M>(&self, message_id: M, f: F) -> Result<Message> where
F: FnOnce(EditMessage) -> EditMessage,
M: Into<MessageId>,
: 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.
pub fn is_nsfw(&self) -> bool
[src]
pub fn is_nsfw(&self) -> bool
Determines if the channel is NSFW.
Refer to utils::is_nsfw
for more details.
pub fn message<M: Into<MessageId>>(&self, message_id: M) -> Result<Message>
[src]
pub fn message<M: Into<MessageId>>(&self, message_id: M) -> Result<Message>
: Use the inner channel's method
Gets a message from the channel.
Requires the Read Message History permission.
pub fn messages<F>(&self, f: F) -> Result<Vec<Message>> where
F: FnOnce(GetMessages) -> GetMessages,
[src]
pub fn messages<F>(&self, f: F) -> Result<Vec<Message>> where
F: FnOnce(GetMessages) -> GetMessages,
: Use the inner channel's method
Gets messages from the channel.
Requires the Read Message History permission.
Examples
use serenity::model::MessageId; let id = MessageId(81392407232380928); // Maximum is 100. let _messages = channel.messages(|g| g.after(id).limit(100));
pub fn reaction_users<M, R, U>(
&self,
message_id: M,
reaction_type: R,
limit: Option<u8>,
after: U
) -> Result<Vec<User>> where
M: Into<MessageId>,
R: Into<ReactionType>,
U: Into<Option<UserId>>,
[src]
pub fn reaction_users<M, R, U>(
&self,
message_id: M,
reaction_type: R,
limit: Option<u8>,
after: U
) -> Result<Vec<User>> where
M: Into<MessageId>,
R: Into<ReactionType>,
U: Into<Option<UserId>>,
: Use the inner channel's method
Gets the list of User
s 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.
pub fn id(&self) -> ChannelId
[src]
pub fn id(&self) -> ChannelId
Retrieves the Id of the inner Group
, GuildChannel
, or
PrivateChannel
.
pub fn say(&self, content: &str) -> Result<Message>
[src]
pub fn say(&self, content: &str) -> Result<Message>
: 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.
pub fn send_files<'a, F, T, It: IntoIterator<Item = T>>(
&self,
files: It,
f: F
) -> Result<Message> where
F: FnOnce(CreateMessage) -> CreateMessage,
T: Into<AttachmentType<'a>>,
[src]
pub fn send_files<'a, F, T, It: IntoIterator<Item = T>>(
&self,
files: It,
f: F
) -> Result<Message> where
F: FnOnce(CreateMessage) -> CreateMessage,
T: Into<AttachmentType<'a>>,
: 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.
pub fn send_message<F>(&self, f: F) -> Result<Message> where
F: FnOnce(CreateMessage) -> CreateMessage,
[src]
pub fn send_message<F>(&self, f: F) -> Result<Message> where
F: FnOnce(CreateMessage) -> CreateMessage,
: 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.
pub fn unpin<M: Into<MessageId>>(&self, message_id: M) -> Result<()>
[src]
pub fn unpin<M: Into<MessageId>>(&self, message_id: M) -> Result<()>
: 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]
impl From<Channel> for ChannelId
impl<'a> From<&'a Channel> for ChannelId
[src]
impl<'a> From<&'a Channel> for ChannelId
impl Clone for Channel
[src]
impl Clone for Channel
fn clone(&self) -> Channel
[src]
fn clone(&self) -> Channel
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl Debug for Channel
[src]
impl Debug for Channel
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl<'de> Deserialize<'de> for Channel
[src]
impl<'de> Deserialize<'de> for Channel
fn deserialize<D: Deserializer<'de>>(
deserializer: D
) -> StdResult<Self, D::Error>
[src]
fn deserialize<D: Deserializer<'de>>(
deserializer: D
) -> StdResult<Self, D::Error>
Deserialize this value from the given Serde deserializer. Read more
impl Serialize for Channel
[src]
impl Serialize for Channel
fn serialize<S>(&self, serializer: S) -> StdResult<S::Ok, S::Error> where
S: Serializer,
[src]
fn serialize<S>(&self, serializer: S) -> StdResult<S::Ok, S::Error> where
S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl Display for Channel
[src]
impl Display for Channel
fn fmt(&self, f: &mut Formatter) -> FmtResult
[src]
fn fmt(&self, f: &mut Formatter) -> FmtResult
Formats the channel into a "mentioned" string.
This will return a different format for each type of channel:
Group
s: the generated name retrievable viaGroup::name
;PrivateChannel
s: the recipient's name;GuildChannel
s: a string mentioning the channel that users who can see the channel can click on.
impl Mentionable for Channel
[src]
impl Mentionable for Channel
fn mention(&self) -> String
[src]
fn mention(&self) -> String
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]
impl FromStr for Channel