aboutsummaryrefslogtreecommitdiff
path: root/src/builder
diff options
context:
space:
mode:
authoracdenisSK <[email protected]>2017-10-02 22:29:10 +0200
committeracdenisSK <[email protected]>2017-10-02 22:29:10 +0200
commit6a4e52b3fac7d2e96e3a1a67901fbdd4721fb249 (patch)
treeae9ad7d7cb73d4ece6a199796af5975545071493 /src/builder
parent`to_owned` -> `to_string` (diff)
downloadserenity-6a4e52b3fac7d2e96e3a1a67901fbdd4721fb249.tar.xz
serenity-6a4e52b3fac7d2e96e3a1a67901fbdd4721fb249.zip
Use the de-generification trick.
Fixes #168
Diffstat (limited to 'src/builder')
-rw-r--r--src/builder/create_embed.rs16
-rw-r--r--src/builder/create_message.rs6
-rw-r--r--src/builder/edit_guild.rs27
-rw-r--r--src/builder/edit_member.rs8
-rw-r--r--src/builder/get_messages.rs24
5 files changed, 60 insertions, 21 deletions
diff --git a/src/builder/create_embed.rs b/src/builder/create_embed.rs
index a128c91..7303693 100644
--- a/src/builder/create_embed.rs
+++ b/src/builder/create_embed.rs
@@ -62,14 +62,20 @@ impl CreateEmbed {
/// [`colour`]: #method.colour
#[cfg(feature = "utils")]
#[inline]
- pub fn color<C: Into<Colour>>(self, colour: C) -> Self { self.colour(colour.into()) }
+ pub fn color<C: Into<Colour>>(self, colour: C) -> Self { self.colour(colour) }
+
/// Set the colour of the left-hand side of the embed.
#[cfg(feature = "utils")]
pub fn colour<C: Into<Colour>>(mut self, colour: C) -> Self {
+ self._colour(colour.into())
+ }
+
+ #[cfg(feature = "utils")]
+ fn _colour(mut self, colour: Colour) -> Self {
self.0.insert(
"color".to_string(),
- Value::Number(Number::from(colour.into().0 as u64)),
+ Value::Number(Number::from(colour.0 as u64)),
);
CreateEmbed(self.0)
@@ -282,8 +288,12 @@ impl CreateEmbed {
/// let mut client = Client::new("token", Handler); client.start().unwrap();
/// ```
pub fn timestamp<T: Into<Timestamp>>(mut self, timestamp: T) -> Self {
+ self._timestamp(timestamp.into())
+ }
+
+ fn _timestamp(mut self, timestamp: Timestamp) -> Self {
self.0
- .insert("timestamp".to_string(), Value::String(timestamp.into().ts));
+ .insert("timestamp".to_string(), Value::String(timestamp.ts));
CreateEmbed(self.0)
}
diff --git a/src/builder/create_message.rs b/src/builder/create_message.rs
index 96bad82..123c0b5 100644
--- a/src/builder/create_message.rs
+++ b/src/builder/create_message.rs
@@ -75,7 +75,11 @@ impl CreateMessage {
/// Adds a list of reactions to create after the message's sent.
pub fn reactions<R: Into<ReactionType>>(mut self, reactions: Vec<R>) -> Self {
- self.1 = Some(reactions.into_iter().map(|r| r.into()).collect());
+ self._reactions(reactions.into_iter().map(|r| r.into()).collect())
+ }
+
+ fn _reactions(mut self, reactions: Vec<ReactionType>) -> Self {
+ self.1 = Some(reactions);
CreateMessage(self.0, self.1)
}
diff --git a/src/builder/edit_guild.rs b/src/builder/edit_guild.rs
index 0719305..a4f2c54 100644
--- a/src/builder/edit_guild.rs
+++ b/src/builder/edit_guild.rs
@@ -22,13 +22,14 @@ impl EditGuild {
/// valid.
///
/// [`afk_timeout`]: #method.afk_timeout
- pub fn afk_channel<C: Into<ChannelId>>(mut self, channel: Option<C>) -> Self {
+ pub fn afk_channel<C: Into<ChannelId>>(self, channel: Option<C>) -> Self {
+ self._afk_channel(channel.map(|c| c.into()))
+ }
+
+ fn _afk_channel(mut self, channel: Option<ChannelId>) -> Self {
self.0.insert(
"afk_channel_id".to_string(),
- match channel {
- Some(channel) => Value::Number(Number::from(channel.into().0)),
- None => Value::Null,
- },
+ channel.map_or(Value::Null, |ChannelId(id)| Value::Number(Number::from(id)))
);
self
@@ -98,10 +99,14 @@ impl EditGuild {
/// Transfers the ownership of the guild to another user by Id.
///
/// **Note**: The current user must be the owner of the guild.
- pub fn owner<U: Into<UserId>>(mut self, user_id: U) -> Self {
+ pub fn owner<U: Into<UserId>>(self, user_id: U) -> Self {
+ self._owner(user_id.into())
+ }
+
+ fn _owner(mut self, user_id: UserId) -> Self {
self.0.insert(
"owner_id".to_string(),
- Value::Number(Number::from(user_id.into().0)),
+ Value::Number(Number::from(user_id.0)),
);
self
@@ -185,9 +190,13 @@ impl EditGuild {
///
/// [`VerificationLevel`]: ../model/enum.VerificationLevel.html
/// [`VerificationLevel::High`]: ../model/enum.VerificationLevel.html#variant.High
- pub fn verification_level<V>(mut self, verification_level: V) -> Self
+ pub fn verification_level<V>(self, verification_level: V) -> Self
where V: Into<VerificationLevel> {
- let num = Value::Number(Number::from(verification_level.into().num()));
+ self._verification_level(verification_level.into())
+ }
+
+ fn _verification_level(mut self, verification_level: VerificationLevel) -> Self {
+ let num = Value::Number(Number::from(verification_level.num()));
self.0.insert("verification_level".to_string(), num);
diff --git a/src/builder/edit_member.rs b/src/builder/edit_member.rs
index e450669..53cf0d0 100644
--- a/src/builder/edit_member.rs
+++ b/src/builder/edit_member.rs
@@ -66,10 +66,14 @@ impl EditMember {
/// Requires the [Move Members] permission.
///
/// [Move Members]: ../model/permissions/constant.MOVE_MEMBERS.html
- pub fn voice_channel<C: Into<ChannelId>>(mut self, channel_id: C) -> Self {
+ pub fn voice_channel<C: Into<ChannelId>>(self, channel_id: C) -> Self {
+ self._voice_channel(channel_id.into())
+ }
+
+ fn _voice_channel(mut self, channel_id: ChannelId) -> Self {
self.0.insert(
"channel_id".to_string(),
- Value::Number(Number::from(channel_id.into().0)),
+ Value::Number(Number::from(channel_id.0)),
);
self
diff --git a/src/builder/get_messages.rs b/src/builder/get_messages.rs
index 71af9e5..eff90f4 100644
--- a/src/builder/get_messages.rs
+++ b/src/builder/get_messages.rs
@@ -55,24 +55,36 @@ pub struct GetMessages(pub BTreeMap<String, u64>);
impl GetMessages {
/// Indicates to retrieve the messages after a specific message, given by
/// its Id.
- pub fn after<M: Into<MessageId>>(mut self, message_id: M) -> Self {
- self.0.insert("after".to_string(), message_id.into().0);
+ pub fn after<M: Into<MessageId>>(self, message_id: M) -> Self {
+ self._after(message_id.into())
+ }
+
+ fn _after(mut self, MessageId(id): MessageId) -> Self {
+ self.0.insert("after".to_string(), id);
self
}
/// Indicates to retrieve the messages _around_ a specific message in either
/// direction (before+after) the given message.
- pub fn around<M: Into<MessageId>>(mut self, message_id: M) -> Self {
- self.0.insert("around".to_string(), message_id.into().0);
+ pub fn around<M: Into<MessageId>>(self, message_id: M) -> Self {
+ self._around(message_id.into())
+ }
+
+ fn _around(mut self, MessageId(id): MessageId) -> Self {
+ self.0.insert("around".to_string(), id);
self
}
/// Indicates to retrieve the messages before a specific message, given by
/// its Id.
- pub fn before<M: Into<MessageId>>(mut self, message_id: M) -> Self {
- self.0.insert("before".to_string(), message_id.into().0);
+ pub fn before<M: Into<MessageId>>(self, message_id: M) -> Self {
+ self._before(message_id.into())
+ }
+
+ fn _before(mut self, MessageId(id): MessageId) -> Self {
+ self.0.insert("before".to_string(), id);
self
}