diff options
| -rw-r--r-- | src/model/user.rs | 16 | ||||
| -rw-r--r-- | tests/test_user.rs | 2 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/model/user.rs b/src/model/user.rs index 46da757..4875e6f 100644 --- a/src/model/user.rs +++ b/src/model/user.rs @@ -105,6 +105,14 @@ impl CurrentUser { pub fn guilds(&self) -> Result<Vec<GuildInfo>> { rest::get_guilds(GuildPagination::After(GuildId(0)), 100) } + + /// Returns a static formatted URL of the user's icon, if one exists. + /// + /// This will always produce a WEBP image URL. + pub fn static_avatar_url(&self) -> Option<String> { + self.avatar.as_ref() + .map(|av| format!(cdn!("/avatars/{}/{}.webp?size=1024"), self.id.0, av)) + } } impl User { @@ -235,6 +243,14 @@ impl User { }, } } + + /// Returns a static formatted URL of the user's icon, if one exists. + /// + /// This will always produce a WEBP image URL. + pub fn static_avatar_url(&self) -> Option<String> { + self.avatar.as_ref() + .map(|av| format!(cdn!("/avatars/{}/{}.webp?size=1024"), self.id.0, av)) + } } impl fmt::Display for User { diff --git a/tests/test_user.rs b/tests/test_user.rs index 3da1ec6..21c336d 100644 --- a/tests/test_user.rs +++ b/tests/test_user.rs @@ -17,9 +17,11 @@ fn test_core() { let mut user = gen(); assert!(user.avatar_url().unwrap().ends_with("/avatars/210/abc.webp?size=1024")); + assert!(user.static_avatar_url().unwrap().ends_with("/avatars/210/abc.webp?size=1024")); user.avatar = Some("a_aaa".to_owned()); assert!(user.avatar_url().unwrap().ends_with("/avatars/210/a_aaa.gif?size=1024")); + assert!(user.static_avatar_url().unwrap().ends_with("/avatars/210/a_aaa.webp?size=1024")); user.avatar = None; assert!(user.avatar_url().is_none()); |