aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAustin Hellyer <[email protected]>2016-12-17 11:06:23 -0800
committerAustin Hellyer <[email protected]>2016-12-17 11:06:23 -0800
commit933ee8914509e52c5119ced9f5d9d8f9644cfa63 (patch)
tree6455269b1e763e74e8273613afce5fe14b69789e
parentRemove cache feature dependency for framework (diff)
downloadserenity-933ee8914509e52c5119ced9f5d9d8f9644cfa63.tar.xz
serenity-933ee8914509e52c5119ced9f5d9d8f9644cfa63.zip
Make Id displays format u64 instead of a mention
Instead of mentioning the channel, role, or user on an Id display format, format its inner u64 instead. Instead, use `Id::mention()` to accomplish the equivilant.
-rw-r--r--src/model/id.rs6
-rw-r--r--src/utils/message_builder.rs6
-rw-r--r--tests/test_formatters.rs69
3 files changed, 70 insertions, 11 deletions
diff --git a/src/model/id.rs b/src/model/id.rs
index 0d337fb..04c15f7 100644
--- a/src/model/id.rs
+++ b/src/model/id.rs
@@ -203,19 +203,19 @@ impl From<User> for UserId {
impl fmt::Display for UserId {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::Display::fmt(&self.mention(), f)
+ fmt::Display::fmt(&self.0, f)
}
}
impl fmt::Display for RoleId {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::Display::fmt(&self.mention(), f)
+ fmt::Display::fmt(&self.0, f)
}
}
impl fmt::Display for ChannelId {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::Display::fmt(&self.mention(), f)
+ fmt::Display::fmt(&self.0, f)
}
}
diff --git a/src/utils/message_builder.rs b/src/utils/message_builder.rs
index 5eadd19..a93468e 100644
--- a/src/utils/message_builder.rs
+++ b/src/utils/message_builder.rs
@@ -65,7 +65,7 @@ impl MessageBuilder {
/// [`GuildChannel`]: ../model/struct.GuildChannel.html
/// [Display implementation]: ../model/struct.ChannelId.html#method.fmt-1
pub fn channel<C: Into<ChannelId>>(mut self, channel: C) -> Self {
- let _ = write!(self.0, "{}", channel.into());
+ let _ = write!(self.0, "{}", channel.into().mention());
self
}
@@ -261,7 +261,7 @@ impl MessageBuilder {
/// [`RoleId`]: ../model/struct.RoleId.html
/// [Display implementation]: ../model/struct.RoleId.html#method.fmt-1
pub fn role<R: Into<RoleId>>(mut self, role: R) -> Self {
- let _ = write!(self.0, "{}", role.into());
+ let _ = write!(self.0, "{}", role.into().mention());
self
}
@@ -278,7 +278,7 @@ impl MessageBuilder {
/// [`UserId`]: ../model/struct.UserId.html
/// [Display implementation]: ../model/struct.UserId.html#method.fmt-1
pub fn user<U: Into<UserId>>(mut self, user: U) -> Self {
- let _ = write!(self.0, "{}", user.into());
+ let _ = write!(self.0, "{}", user.into().mention());
self
}
diff --git a/tests/test_formatters.rs b/tests/test_formatters.rs
index 922fb41..91eb0f0 100644
--- a/tests/test_formatters.rs
+++ b/tests/test_formatters.rs
@@ -1,12 +1,71 @@
extern crate serenity;
use serenity::model::*;
+use serenity::utils::Colour;
#[test]
fn test_formatters() {
- assert_eq!(format!("{}", ChannelId(1)), "<#1>");
- assert_eq!(format!("{}", EmojiId(2)), "2");
- assert_eq!(format!("{}", GuildId(3)), "3");
- assert_eq!(format!("{}", RoleId(4)), "<@&4>");
- assert_eq!(format!("{}", UserId(5)), "<@5>");
+ assert_eq!(ChannelId(1).to_string(), "1");
+ assert_eq!(EmojiId(2).to_string(), "2");
+ assert_eq!(GuildId(3).to_string(), "3");
+ assert_eq!(RoleId(4).to_string(), "4");
+ assert_eq!(UserId(5).to_string(), "5");
+}
+
+#[test]
+fn test_mention() {
+ let channel = Channel::Guild(GuildChannel {
+ bitrate: None,
+ guild_id: GuildId(1),
+ kind: ChannelType::Text,
+ id: ChannelId(4),
+ last_message_id: None,
+ last_pin_timestamp: None,
+ name: "a".to_owned(),
+ permission_overwrites: vec![],
+ position: 1,
+ topic: None,
+ user_limit: None,
+ });
+ let emoji = Emoji {
+ id: EmojiId(5),
+ name: "a".to_owned(),
+ managed: true,
+ require_colons: true,
+ roles: vec![],
+ };
+ let role = Role {
+ id: RoleId(2),
+ colour: Colour::rosewater(),
+ hoist: false,
+ managed: false,
+ mentionable: false,
+ name: "fake role".to_owned(),
+ permissions: Permissions::empty(),
+ position: 1,
+ };
+ let user = User {
+ id: UserId(6),
+ avatar: None,
+ bot: false,
+ discriminator: "4132".to_owned(),
+ name: "fake".to_owned(),
+ };
+ let member = Member {
+ deaf: false,
+ joined_at: "fake".to_owned(),
+ mute: false,
+ nick: None,
+ roles: vec![],
+ user: user.clone(),
+ };
+
+ assert_eq!(ChannelId(1).mention(), "<#1>");
+ assert_eq!(channel.mention(), "<#4>");
+ assert_eq!(emoji.mention(), "<:a:5>");
+ assert_eq!(member.mention(), "<@6>");
+ assert_eq!(role.mention(), "<@&2>");
+ assert_eq!(role.id.mention(), "<@&2>");
+ assert_eq!(user.mention(), "<@6>");
+ assert_eq!(user.id.mention(), "<@6>");
}