From 3dcba6275458bb31f3f90cc0990bdfc673775179 Mon Sep 17 00:00:00 2001 From: Sergiovan Date: Sun, 17 Sep 2023 13:08:30 +0200 Subject: [PATCH] Make icon and unicode_emoji nullable in addition to undefined --- src/builder/edit_role.rs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/builder/edit_role.rs b/src/builder/edit_role.rs index dd8a2a3daa9..bb853968407 100644 --- a/src/builder/edit_role.rs +++ b/src/builder/edit_role.rs @@ -56,9 +56,10 @@ pub struct EditRole<'a> { #[serde(skip_serializing_if = "Option::is_none")] hoist: Option, #[serde(skip_serializing_if = "Option::is_none")] - icon: Option, + icon: Option>, #[serde(skip_serializing_if = "Option::is_none")] - unicode_emoji: Option, + unicode_emoji: Option>, + #[serde(skip_serializing_if = "Option::is_none")] mentionable: Option, @@ -83,7 +84,7 @@ impl<'a> EditRole<'a> { permissions: Some(role.permissions.bits()), position: Some(role.position), colour: Some(role.colour), - unicode_emoji: role.unicode_emoji.clone(), + unicode_emoji: role.unicode_emoji.as_ref().map(|v| Some(v.clone())), audit_log_reason: None, // TODO: Do we want to download role.icon? icon: None, @@ -129,16 +130,16 @@ impl<'a> EditRole<'a> { } /// Set the role icon to a unicode emoji. - pub fn unicode_emoji(mut self, unicode_emoji: impl Into) -> Self { - self.unicode_emoji = Some(unicode_emoji.into()); - self.icon = None; + pub fn unicode_emoji(mut self, unicode_emoji: Option) -> Self { + self.unicode_emoji = Some(unicode_emoji); + self.icon = Some(None); self } /// Set the role icon to a custom image. - pub fn icon(mut self, icon: &CreateAttachment) -> Self { - self.icon = Some(icon.to_base64()); - self.unicode_emoji = None; + pub fn icon(mut self, icon: Option<&CreateAttachment>) -> Self { + self.icon = Some(icon.map(CreateAttachment::to_base64)); + self.unicode_emoji = Some(None); self }