1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
use internal::prelude::*; /// A builder to edit a [`GuildChannel`] for use via [`GuildChannel::edit`] /// /// Defaults are not directly provided by the builder itself. /// /// # Examples /// /// Edit a channel, providing a new name and topic: /// /// ```rust,ignore /// // assuming a channel has already been bound /// if let Err(why) = channel::edit(|c| c.name("new name").topic("a test topic")) { /// // properly handle the error /// } /// ``` /// /// [`GuildChannel`]: ../model/struct.GuildChannel.html /// [`GuildChannel::edit`]: ../model/struct.GuildChannel.html#method.edit #[derive(Clone, Debug, Default)] pub struct EditChannel(pub JsonMap); impl EditChannel { /// The bitrate of the channel in bits. /// /// This is for [voice] channels only. /// /// [voice]: ../model/enum.ChannelType.html#variant.Voice pub fn bitrate(mut self, bitrate: u64) -> Self { self.0 .insert("bitrate".to_owned(), Value::Number(Number::from(bitrate))); self } /// The name of the channel. /// /// Must be between 2 and 100 characters long. pub fn name(mut self, name: &str) -> Self { self.0 .insert("name".to_owned(), Value::String(name.to_owned())); self } /// The position of the channel in the channel list. pub fn position(mut self, position: u64) -> Self { self.0 .insert("position".to_owned(), Value::Number(Number::from(position))); self } /// The topic of the channel. Can be empty. /// /// Must be between 0 and 1024 characters long. /// /// This is for [text] channels only. /// /// [text]: ../model/enum.ChannelType.html#variant.Text pub fn topic(mut self, topic: &str) -> Self { self.0 .insert("topic".to_owned(), Value::String(topic.to_owned())); self } /// The number of users that may be in the channel simultaneously. /// /// This is for [voice] channels only. /// /// [voice]: ../model/enum.ChannelType.html#variant.Voice pub fn user_limit(mut self, user_limit: u64) -> Self { self.0.insert( "user_limit".to_owned(), Value::Number(Number::from(user_limit)), ); self } }