Struct CreateChannel

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

A builder for creating a new GuildChannel in a Guild.

Except Self::name, all fields are optional.

Discord docs.

Implementations§

Source§

impl<'a> CreateChannel<'a>

Source

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

Creates a builder with the given name, setting Self::kind to ChannelType::Text and leaving all other fields empty.

Source

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

Specify how to call this new channel, replacing the current value as set in Self::new.

Note: Must be between 2 and 100 characters long.

Source

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

Specify what type the channel is, whether it’s a text, voice, category or news channel.

Source

pub fn category(self, id: impl Into<ChannelId>) -> Self

Specify the category, the “parent” of this channel.

Only for ChannelType::Text, ChannelType::Voice, ChannelType::News, ChannelType::Stage, ChannelType::Forum

Source

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

Channel topic (0-1024 characters)

Only for ChannelType::Text, ChannelType::News, ChannelType::Forum

Source

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

Source

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

The bitrate (in bits) of the voice or stage channel; min 8000

For voice channels, normal servers can set bitrate up to 96000, servers with Boost level 1 can set up to 128000, servers with Boost level 2 can set up to 256000, and servers with Boost level 3 or the VIP_REGIONS guild feature can set up to 384000. For stage channels, bitrate can be set up to 64000.

Only for ChannelType::Voice and ChannelType::Stage

Source

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

Set how many users may occupy this voice channel

Only for ChannelType::Voice and ChannelType::Stage

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 position(self, pos: u16) -> Self

Specify where the channel should be located.

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 and cannot do.

§Example

Inheriting permissions from an existing channel:

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

// Assuming a guild 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 = CreateChannel::new("my_new_cool_channel").permissions(permissions);
guild.create_channel(&http, builder).await?;
Source

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

Sets the request’s audit log reason.

Source

pub fn rtc_region(self, rtc_region: String) -> Self

Channel voice region id of the voice or stage channel, automatic when not set

Only for ChannelType::Voice and ChannelType::Stage

Source

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

The camera video quality mode of the voice channel

Only for ChannelType::Voice and ChannelType::Stage

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

Only for ChannelType::Text, ChannelType::News, ChannelType::Forum

Source

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

Emoji to show in the add reaction button on a thread in a forum

Only for ChannelType::Forum

Source

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

Set of tags that can be used in a forum channel

Only for ChannelType::Forum

Source

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

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

Only for ChannelType::Forum

Trait Implementations§

Source§

impl Builder for CreateChannel<'_>

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,

Creates a new Channel in the guild.

Note: Requires the Manage Channels 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> = GuildId

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

type Built = GuildChannel

Source§

impl<'a> Clone for CreateChannel<'a>

Source§

fn clone(&self) -> CreateChannel<'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 CreateChannel<'a>

Source§

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

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

impl<'a> Serialize for CreateChannel<'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 CreateChannel<'a>

§

impl<'a> RefUnwindSafe for CreateChannel<'a>

§

impl<'a> Send for CreateChannel<'a>

§

impl<'a> Sync for CreateChannel<'a>

§

impl<'a> Unpin for CreateChannel<'a>

§

impl<'a> UnwindSafe for CreateChannel<'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