Struct EditChannel

Source
pub struct EditChannel<'a> { /* private fields */ }
Expand description

A builder to edit a GuildChannel for use via GuildChannel::edit.

Discord docs.

§Examples

Edit a channel, providing a new name and topic:

let builder = EditChannel::new().name("new name").topic("a test topic");
if let Err(why) = channel.edit(&http, builder).await {
    // properly handle the error
}

Implementations§

Source§

impl<'a> EditChannel<'a>

Source

pub fn new() -> Self

Equivalent to Self::default.

Source

pub fn bitrate(self, bitrate: u32) -> Self

The bitrate of the channel in bits.

This is for voice channels only.

Source

pub fn video_quality_mode(self, quality: VideoQualityMode) -> Self

The camera video quality mode of the channel.

This is for voice channels only.

Source

pub fn voice_region(self, id: Option<String>) -> Self

The voice region of the channel. It is automatic when None.

This is for voice channels only.

Source

pub fn name(self, name: impl Into<String>) -> Self

The name of the channel.

Must be between 2 and 100 characters long.

Source

pub fn position(self, position: u16) -> Self

The position of the channel in the channel list.

Source

pub fn topic(self, topic: impl Into<String>) -> Self

The topic of the channel. Can be empty.

Must be between 0 and 1024 characters long.

This is for text channels only.

Source

pub fn status(self, status: impl Into<String>) -> Self

The status of the voice channel. Can be empty.

Must be between 0 and 1024 characters long.

This is for voice channels only.

Source

pub fn nsfw(self, nsfw: bool) -> Self

Is the channel inappropriate for work?

This is for text channels only.

Source

pub fn user_limit(self, user_limit: u32) -> Self

The number of users that may be in the channel simultaneously.

This is for voice channels only.

Source

pub fn category<C: Into<Option<ChannelId>>>(self, category: C) -> Self

The parent category of the channel.

This is for text and voice channels only.

Source

pub fn rate_limit_per_user(self, seconds: u16) -> Self

How many seconds must a user wait before sending another message.

Bots, or users with the MANAGE_MESSAGES and/or MANAGE_CHANNELS permissions are exempt from this restriction.

Note: Must be between 0 and 21600 seconds (360 minutes or 6 hours).

Source

pub fn permissions( self, perms: impl IntoIterator<Item = PermissionOverwrite>, ) -> Self

A set of overwrites defining what a user or a user carrying a certain role can or can’t do.

§Example

Inheriting permissions from an existing channel:

use serenity::model::channel::{PermissionOverwrite, PermissionOverwriteType};
use serenity::model::id::UserId;
use serenity::model::permissions::Permissions;

// Assuming a channel has already been bound.
let permissions = vec![PermissionOverwrite {
    allow: Permissions::VIEW_CHANNEL,
    deny: Permissions::SEND_TTS_MESSAGES,
    kind: PermissionOverwriteType::Member(UserId::new(1234)),
}];

let builder = EditChannel::new().name("my_edited_cool_channel").permissions(permissions);
channel.edit(http, builder).await?;
Source

pub fn available_tags( self, tags: impl IntoIterator<Item = CreateForumTag>, ) -> Self

If this is a forum channel, sets the tags that can be assigned to forum posts.

Source

pub fn audit_log_reason(self, reason: &'a str) -> Self

Sets the request’s audit log reason.

Source

pub fn kind(self, kind: ChannelType) -> Self

The type of channel; only conversion between text and announcement is supported and only in guilds with the “NEWS” feature

Source

pub fn default_auto_archive_duration( self, default_auto_archive_duration: AutoArchiveDuration, ) -> Self

The default duration that the clients use (not the API) for newly created threads in the channel, in minutes, to automatically archive the thread after recent activity

Source

pub fn flags(self, flags: ChannelFlags) -> Self

Channel flags combined as a bitfield. Currently only ChannelFlags::REQUIRE_TAG is supported.

Source

pub fn default_reaction_emoji( self, default_reaction_emoji: Option<ForumEmoji>, ) -> Self

The emoji to show in the add reaction button on a thread in a forum channel

Source

pub fn default_thread_rate_limit_per_user( self, default_thread_rate_limit_per_user: u16, ) -> Self

The initial rate_limit_per_user to set on newly created threads in a channel. This field is copied to the thread at creation time and does not live update.

Source

pub fn default_sort_order(self, default_sort_order: SortOrder) -> Self

The default sort order type used to order posts in forum channels

Source

pub fn default_forum_layout(self, default_forum_layout: ForumLayoutType) -> Self

The default forum layout type used to display posts in forum channels

Trait Implementations§

Source§

impl Builder for EditChannel<'_>

Source§

fn execute<'life0, 'async_trait>( self, cache_http: impl 'async_trait + CacheHttp, ctx: Self::Context<'life0>, ) -> Pin<Box<dyn Future<Output = Result<Self::Built>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Edits the channel’s settings.

Note: Requires the Manage Channels permission. Modifying permissions via Self::permissions also requires the Manage Roles permission.

§Errors

If the cache is enabled, returns a ModelError::InvalidPermissions if the current user lacks permission. Otherwise returns Error::Http, as well as if invalid data is given.

Source§

type Context<'ctx> = ChannelId

Additional data that’s only required when sending a request off to the API.
Source§

type Built = GuildChannel

Source§

impl<'a> Clone for EditChannel<'a>

Source§

fn clone(&self) -> EditChannel<'a>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for EditChannel<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a> Default for EditChannel<'a>

Source§

fn default() -> EditChannel<'a>

Returns the “default value” for a type. Read more
Source§

impl<'a> Serialize for EditChannel<'a>

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for EditChannel<'a>

§

impl<'a> RefUnwindSafe for EditChannel<'a>

§

impl<'a> Send for EditChannel<'a>

§

impl<'a> Sync for EditChannel<'a>

§

impl<'a> Unpin for EditChannel<'a>

§

impl<'a> UnwindSafe for EditChannel<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneDebuggableStorage for T

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> CloneableStorage for T
where T: Any + Send + Sync + Clone,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

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

fn in_current_span(self) -> Instrumented<Self>

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

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> DebuggableStorage for T
where T: Any + Send + Sync + Debug,

Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T