diff options
| author | Zeyla Hellyer <[email protected]> | 2017-04-13 20:45:56 -0700 |
|---|---|---|
| committer | Zeyla Hellyer <[email protected]> | 2017-04-19 14:53:32 -0700 |
| commit | 3f03f9adc97315bb61a5c71f52365306cb8e2d1a (patch) | |
| tree | 8fe0b518d1450b0657cfb75f56251fd90120807e /src/model/guild/partial_guild.rs | |
| parent | Update the way errors are handled in dispatch (diff) | |
| download | serenity-3f03f9adc97315bb61a5c71f52365306cb8e2d1a.tar.xz serenity-3f03f9adc97315bb61a5c71f52365306cb8e2d1a.zip | |
Deprecate methods prefixed with `get_`
A lot of structs - such as `Guild` or `ChannelId` - have methods with
prefixes of `get_`, which are generally discouraged. To fix this,
deprecate them and remove them in v0.3.0.
Diffstat (limited to 'src/model/guild/partial_guild.rs')
| -rw-r--r-- | src/model/guild/partial_guild.rs | 245 |
1 files changed, 168 insertions, 77 deletions
diff --git a/src/model/guild/partial_guild.rs b/src/model/guild/partial_guild.rs index b6d027a..2be0ae2 100644 --- a/src/model/guild/partial_guild.rs +++ b/src/model/guild/partial_guild.rs @@ -57,6 +57,24 @@ impl PartialGuild { self.id.ban(user, delete_message_days) } + /// Gets a list of the guild's bans. + /// + /// Requires the [Ban Members] permission. + /// + /// [Ban Members]: permissions/constant.BAN_MEMBERS.html + #[inline] + pub fn bans(&self) -> Result<Vec<Ban>> { + self.id.bans() + } + + /// Gets all of the guild's channels over the REST API. + /// + /// [`Guild`]: struct.Guild.html + #[inline] + pub fn channels(&self) -> Result<HashMap<ChannelId, GuildChannel>> { + self.id.channels() + } + /// Creates a [`GuildChannel`] in the guild. /// /// Refer to [`rest::create_channel`] for more information. @@ -264,58 +282,57 @@ impl PartialGuild { self.id.edit_nickname(new_nickname) } - /// Gets a partial amount of guild data by its Id. + /// Gets an emoji in the guild by Id. /// - /// Requires that the current user be in the guild. + /// Requires the [Manage Emojis] permission. + /// + /// [Manage Emojis]: permissions/constant.MANAGE_EMOJIS.html #[inline] - pub fn get<G: Into<GuildId>>(guild_id: G) -> Result<PartialGuild> { - guild_id.into().get() + pub fn emoji<E: Into<EmojiId>>(&self, emoji_id: E) -> Result<Emoji> { + self.id.emoji(emoji_id) } - /// Gets a list of the guild's bans. + /// Gets a list of all of the guild's emojis. /// - /// Requires the [Ban Members] permission. + /// Requires the [Manage Emojis] permission. /// - /// [Ban Members]: permissions/constant.BAN_MEMBERS.html + /// [Manage Emojis]: permissions/constant.MANAGE_EMOJIS.html #[inline] - pub fn get_bans(&self) -> Result<Vec<Ban>> { - self.id.get_bans() + pub fn emojis(&self) -> Result<Vec<Emoji>> { + self.id.emojis() } - /// Gets all of the guild's channels over the REST API. + /// Gets a partial amount of guild data by its Id. /// - /// [`Guild`]: struct.Guild.html + /// Requires that the current user be in the guild. #[inline] - pub fn get_channels(&self) -> Result<HashMap<ChannelId, GuildChannel>> { - self.id.get_channels() + pub fn get<G: Into<GuildId>>(guild_id: G) -> Result<PartialGuild> { + guild_id.into().get() } - /// Gets an emoji in the guild by Id. + /// Kicks a [`Member`] from the guild. /// - /// Requires the [Manage Emojis] permission. + /// Requires the [Kick Members] permission. /// - /// [Manage Emojis]: permissions/constant.MANAGE_EMOJIS.html + /// [`Member`]: struct.Member.html + /// [Kick Members]: permissions/constant.KICK_MEMBERS.html #[inline] - pub fn get_emoji<E: Into<EmojiId>>(&self, emoji_id: E) -> Result<Emoji> { - self.id.get_emoji(emoji_id) + pub fn kick<U: Into<UserId>>(&self, user_id: U) -> Result<()> { + self.id.kick(user_id) } - /// Gets a list of all of the guild's emojis. - /// - /// Requires the [Manage Emojis] permission. - /// - /// [Manage Emojis]: permissions/constant.MANAGE_EMOJIS.html - #[inline] - pub fn get_emojis(&self) -> Result<Vec<Emoji>> { - self.id.get_emojis() + /// Returns a formatted URL of the guild's icon, if the guild has an icon. + pub fn icon_url(&self) -> Option<String> { + self.icon.as_ref().map(|icon| + format!(cdn!("/icons/{}/{}.webp"), self.id, icon)) } /// Gets all integration of the guild. /// /// This performs a request over the REST API. #[inline] - pub fn get_integrations(&self) -> Result<Vec<Integration>> { - self.id.get_integrations() + pub fn integrations(&self) -> Result<Vec<Integration>> { + self.id.integrations() } /// Gets all of the guild's invites. @@ -324,16 +341,22 @@ impl PartialGuild { /// /// [Manage Guild]: permissions/constant.MANAGE_GUILD.html #[inline] - pub fn get_invites(&self) -> Result<Vec<RichInvite>> { - self.id.get_invites() + pub fn invites(&self) -> Result<Vec<RichInvite>> { + self.id.invites() + } + + /// Leaves the guild. + #[inline] + pub fn leave(&self) -> Result<PartialGuild> { + self.id.leave() } /// Gets a user's [`Member`] for the guild by Id. /// /// [`Guild`]: struct.Guild.html /// [`Member`]: struct.Member.html - pub fn get_member<U: Into<UserId>>(&self, user_id: U) -> Result<Member> { - self.id.get_member(user_id) + pub fn member<U: Into<UserId>>(&self, user_id: U) -> Result<Member> { + self.id.member(user_id) } /// Gets a list of the guild's members. @@ -343,65 +366,32 @@ impl PartialGuild { /// [`User`]'s Id. /// /// [`User`]: struct.User.html - pub fn get_members<U>(&self, limit: Option<u64>, after: Option<U>) + pub fn members<U>(&self, limit: Option<u64>, after: Option<U>) -> Result<Vec<Member>> where U: Into<UserId> { - self.id.get_members(limit, after) - } - - /// Gets the number of [`Member`]s that would be pruned with the given - /// number of days. - /// - /// Requires the [Kick Members] permission. - /// - /// [`Member`]: struct.Member.html - /// [Kick Members]: permissions/constant.KICK_MEMBERS.html - #[inline] - pub fn get_prune_count(&self, days: u16) -> Result<GuildPrune> { - self.id.get_prune_count(days) + self.id.members(limit, after) } - /// Retrieves the guild's webhooks. + /// Moves a member to a specific voice channel. /// - /// **Note**: Requires the [Manage Webhooks] permission. + /// Requires the [Move Members] permission. /// - /// [Manage Webhooks]: permissions/constant.MANAGE_WEBHOOKS.html + /// [Move Members]: permissions/constant.MOVE_MEMBERS.html #[inline] - pub fn get_webhooks(&self) -> Result<Vec<Webhook>> { - self.id.get_webhooks() + pub fn move_member<C, U>(&self, user_id: U, channel_id: C) -> Result<()> + where C: Into<ChannelId>, U: Into<UserId> { + self.id.move_member(user_id, channel_id) } - /// Kicks a [`Member`] from the guild. + /// Gets the number of [`Member`]s that would be pruned with the given + /// number of days. /// /// Requires the [Kick Members] permission. /// /// [`Member`]: struct.Member.html /// [Kick Members]: permissions/constant.KICK_MEMBERS.html #[inline] - pub fn kick<U: Into<UserId>>(&self, user_id: U) -> Result<()> { - self.id.kick(user_id) - } - - /// Returns a formatted URL of the guild's icon, if the guild has an icon. - pub fn icon_url(&self) -> Option<String> { - self.icon.as_ref().map(|icon| - format!(cdn!("/icons/{}/{}.webp"), self.id, icon)) - } - - /// Leaves the guild. - #[inline] - pub fn leave(&self) -> Result<PartialGuild> { - self.id.leave() - } - - /// Moves a member to a specific voice channel. - /// - /// Requires the [Move Members] permission. - /// - /// [Move Members]: permissions/constant.MOVE_MEMBERS.html - #[inline] - pub fn move_member<C, U>(&self, user_id: U, channel_id: C) -> Result<()> - where C: Into<ChannelId>, U: Into<UserId> { - self.id.move_member(user_id, channel_id) + pub fn prune_count(&self, days: u16) -> Result<GuildPrune> { + self.id.prune_count(days) } /// Returns the Id of the shard associated with the guild. @@ -472,4 +462,105 @@ impl PartialGuild { pub fn unban<U: Into<UserId>>(&self, user_id: U) -> Result<()> { self.id.unban(user_id) } + + /// Retrieves the guild's webhooks. + /// + /// **Note**: Requires the [Manage Webhooks] permission. + /// + /// [Manage Webhooks]: permissions/constant.MANAGE_WEBHOOKS.html + #[inline] + pub fn webhooks(&self) -> Result<Vec<Webhook>> { + self.id.webhooks() + } + + /// Alias of [`bans`]. + /// + /// [`bans`]: #method.bans + #[deprecated(since="0.1.5", note="Use `bans` instead.")] + #[inline] + pub fn get_bans(&self) -> Result<Vec<Ban>> { + self.bans() + } + + /// Alias of [`channels`]. + /// + /// [`channels`]: #method.channels + #[deprecated(since="0.1.5", note="Use `channels` instead.")] + #[inline] + pub fn get_channels(&self) -> Result<HashMap<ChannelId, GuildChannel>> { + self.channels() + } + + /// Alias of [`emoji`]. + /// + /// [`emoji`]: #method.emoji + #[deprecated(since="0.1.5", note="Use `emoji` instead.")] + #[inline] + pub fn get_emoji<E: Into<EmojiId>>(&self, emoji_id: E) -> Result<Emoji> { + self.emoji(emoji_id) + } + + /// Alias of [`emojis`]. + /// + /// [`emojis`]: #method.emojis + #[deprecated(since="0.1.5", note="Use `emojis` instead.")] + #[inline] + pub fn get_emojis(&self) -> Result<Vec<Emoji>> { + self.emojis() + } + + /// Alias of [`integrations`]. + /// + /// [`integrations`]: #method.integrations + #[deprecated(since="0.1.5", note="Use `integrations` instead.")] + #[inline] + pub fn get_integrations(&self) -> Result<Vec<Integration>> { + self.integrations() + } + + /// Alias of [`invites`]. + /// + /// [`invites`]: #method.invites + #[deprecated(since="0.1.5", note="Use `invites` instead.")] + #[inline] + pub fn get_invites(&self) -> Result<Vec<RichInvite>> { + self.invites() + } + + /// Alias of [`member`]. + /// + /// [`member`]: #method.member + #[deprecated(since="0.1.5", note="Use `member` instead.")] + #[inline] + pub fn get_member<U: Into<UserId>>(&self, user_id: U) -> Result<Member> { + self.member(user_id) + } + + /// Alias of [`members`]. + /// + /// [`members`]: #method.members + #[deprecated(since="0.1.5", note="Use `members` instead.")] + #[inline] + pub fn get_members<U>(&self, limit: Option<u64>, after: Option<U>) + -> Result<Vec<Member>> where U: Into<UserId> { + self.members(limit, after) + } + + /// Alias of [`prune_count`]. + /// + /// [`prune_count`]: #method.prune_count + #[deprecated(since="0.1.5", note="Use `prune_count` instead.")] + #[inline] + pub fn get_prune_count(&self, days: u16) -> Result<GuildPrune> { + self.prune_count(days) + } + + /// Alias of [`webhooks`]. + /// + /// [`webhooks`]: #method.webhooks + #[deprecated(since="0.1.5", note="Use `webhooks` instead.")] + #[inline] + pub fn get_webhooks(&self) -> Result<Vec<Webhook>> { + self.webhooks() + } } |