File tree Expand file tree Collapse file tree 1 file changed +12
-9
lines changed
Expand file tree Collapse file tree 1 file changed +12
-9
lines changed Original file line number Diff line number Diff line change @@ -12,6 +12,7 @@ mod reaction;
1212use std:: fmt;
1313
1414use serde:: de:: { Error as DeError , Unexpected } ;
15+ use serde:: ser:: SerializeMap as _;
1516
1617pub use self :: attachment:: * ;
1718pub use self :: channel_id:: * ;
@@ -497,25 +498,27 @@ pub enum ForumEmoji {
497498 Name ( String ) ,
498499}
499500
500- #[ derive( Serialize , Deserialize ) ]
501+ #[ derive( Deserialize ) ]
501502struct RawForumEmoji {
502503 emoji_id : Option < EmojiId > ,
503504 emoji_name : Option < String > ,
504505}
505506
506507impl serde:: Serialize for ForumEmoji {
507508 fn serialize < S : serde:: Serializer > ( & self , serializer : S ) -> Result < S :: Ok , S :: Error > {
509+ let mut map = serializer. serialize_map ( Some ( 2 ) ) ?;
508510 match self {
509- Self :: Id ( id) => RawForumEmoji {
510- emoji_id : Some ( * id) ,
511- emoji_name : None ,
511+ Self :: Id ( id) => {
512+ map . serialize_entry ( " emoji_id" , id) ? ;
513+ map . serialize_entry ( " emoji_name" , & None :: < ( ) > ) ? ;
512514 } ,
513- Self :: Name ( name) => RawForumEmoji {
514- emoji_id : None ,
515- emoji_name : Some ( name. clone ( ) ) ,
515+ Self :: Name ( name) => {
516+ map . serialize_entry ( " emoji_id" , & None :: < ( ) > ) ? ;
517+ map . serialize_entry ( " emoji_name" , name) ? ;
516518 } ,
517- }
518- . serialize ( serializer)
519+ } ;
520+
521+ map. end ( )
519522 }
520523}
521524
You can’t perform that action at this time.
0 commit comments