@@ -27,7 +27,7 @@ const ZERO_NONCE: [u8; 16] = [
2727] ;
2828// conversation data, used to uniquely identify a conversation from a message
2929#[ repr( C ) ]
30- #[ derive( Clone ) ]
30+ #[ derive( Clone , Serialize , Deserialize ) ]
3131pub struct ConversationData {
3232 pub participants : Vec < String > ,
3333 pub cv_name : Option < String > ,
@@ -41,7 +41,7 @@ impl ConversationData {
4141 }
4242}
4343
44- #[ derive( Clone , Copy , Default ) ]
44+ #[ derive( Clone , Copy , Default , Serialize , Deserialize ) ]
4545pub struct TextFlags {
4646 pub bold : bool ,
4747 pub italic : bool ,
@@ -91,7 +91,7 @@ impl TextFlags {
9191 }
9292}
9393
94- #[ derive( Clone , Copy ) ]
94+ #[ derive( Clone , Copy , Serialize , Deserialize ) ]
9595pub enum TextEffect {
9696 Big = 5 ,
9797 Small = 11 ,
@@ -121,7 +121,7 @@ impl TryFrom<u32> for TextEffect {
121121 }
122122}
123123
124- #[ derive( Clone , Copy ) ]
124+ #[ derive( Clone , Copy , Serialize , Deserialize ) ]
125125pub enum TextFormat {
126126 Flags ( TextFlags ) ,
127127 Effect ( TextEffect ) ,
@@ -158,7 +158,7 @@ impl Default for TextFormat {
158158}
159159
160160#[ repr( C ) ]
161- #[ derive( Clone ) ]
161+ #[ derive( Clone , Serialize , Deserialize ) ]
162162pub enum MessagePart {
163163 Text ( String , TextFormat ) ,
164164 Attachment ( Attachment ) ,
@@ -167,15 +167,15 @@ pub enum MessagePart {
167167}
168168
169169#[ repr( C ) ]
170- #[ derive( Clone ) ]
170+ #[ derive( Clone , Serialize , Deserialize ) ]
171171pub struct IndexedMessagePart {
172172 pub part : MessagePart ,
173173 pub idx : Option < usize > ,
174174 pub ext : Option < PartExtension > ,
175175}
176176
177177#[ repr( C ) ]
178- #[ derive( Clone ) ]
178+ #[ derive( Clone , Serialize , Deserialize ) ]
179179pub struct MessageParts ( pub Vec < IndexedMessagePart > ) ;
180180
181181impl MessageParts {
@@ -599,7 +599,7 @@ impl MessageParts {
599599}
600600
601601#[ repr( C ) ]
602- #[ derive( PartialEq , Clone ) ]
602+ #[ derive( PartialEq , Clone , Serialize , Deserialize ) ]
603603pub enum MessageType {
604604 IMessage ,
605605 SMS {
@@ -735,15 +735,15 @@ impl Balloon {
735735 }
736736}
737737
738- #[ derive( Clone ) ]
738+ #[ derive( Clone , Serialize , Deserialize ) ]
739739pub struct ScheduleMode {
740740 pub ms : u64 ,
741741 pub schedule : bool ,
742742}
743743
744744// a "normal" imessage, containing multiple parts and text
745745#[ repr( C ) ]
746- #[ derive( Clone ) ]
746+ #[ derive( Clone , Serialize , Deserialize ) ]
747747pub struct NormalMessage {
748748 pub parts : MessageParts ,
749749 pub effect : Option < String > ,
@@ -759,7 +759,7 @@ pub struct NormalMessage {
759759}
760760
761761#[ repr( C ) ]
762- #[ derive( Clone ) ]
762+ #[ derive( Clone , Serialize , Deserialize ) ]
763763pub struct LinkMeta {
764764 pub data : LPLinkMetadata ,
765765 pub attachments : Vec < Vec < u8 > > ,
@@ -788,20 +788,20 @@ impl NormalMessage {
788788}
789789
790790#[ repr( C ) ]
791- #[ derive( Clone ) ]
791+ #[ derive( Clone , Serialize , Deserialize ) ]
792792pub struct RenameMessage {
793793 pub new_name : String
794794}
795795
796796#[ repr( C ) ]
797- #[ derive( Clone ) ]
797+ #[ derive( Clone , Serialize , Deserialize ) ]
798798pub struct ChangeParticipantMessage {
799799 pub new_participants : Vec < String > ,
800800 pub group_version : u64
801801}
802802
803803#[ repr( C ) ]
804- #[ derive( Clone ) ]
804+ #[ derive( Clone , Serialize , Deserialize ) ]
805805pub enum Reaction {
806806 Heart ,
807807 Like ,
@@ -904,7 +904,7 @@ impl PartExtension {
904904}
905905
906906#[ repr( C ) ]
907- #[ derive( Clone ) ]
907+ #[ derive( Clone , Serialize , Deserialize ) ]
908908pub enum ReactMessageType {
909909 React {
910910 reaction : Reaction ,
@@ -1008,7 +1008,7 @@ impl ReactMessageType {
10081008}
10091009
10101010#[ repr( C ) ]
1011- #[ derive( Clone ) ]
1011+ #[ derive( Clone , Serialize , Deserialize ) ]
10121012pub struct ReactMessage {
10131013 pub to_uuid : String ,
10141014 pub to_part : Option < u64 > ,
@@ -1018,7 +1018,7 @@ pub struct ReactMessage {
10181018}
10191019
10201020#[ repr( C ) ]
1021- #[ derive( Clone ) ]
1021+ #[ derive( Clone , Serialize , Deserialize ) ]
10221022pub struct ErrorMessage {
10231023 pub for_uuid : String ,
10241024 pub status : u64 ,
@@ -1045,14 +1045,14 @@ impl ReactMessage {
10451045}
10461046
10471047#[ repr( C ) ]
1048- #[ derive( Clone ) ]
1048+ #[ derive( Clone , Serialize , Deserialize ) ]
10491049pub struct UnsendMessage {
10501050 pub tuuid : String ,
10511051 pub edit_part : u64 ,
10521052}
10531053
10541054#[ repr( C ) ]
1055- #[ derive( Clone ) ]
1055+ #[ derive( Clone , Serialize , Deserialize ) ]
10561056pub struct EditMessage {
10571057 pub tuuid : String ,
10581058 pub edit_part : u64 ,
@@ -1444,39 +1444,39 @@ impl Attachment {
14441444
14451445// file should be 570x570 png
14461446#[ repr( C ) ]
1447- #[ derive( Clone ) ]
1447+ #[ derive( Clone , Serialize , Deserialize ) ]
14481448pub struct IconChangeMessage {
14491449 pub file : Option < MMCSFile > ,
14501450 pub group_version : u64 ,
14511451}
14521452
14531453#[ repr( C ) ]
1454- #[ derive( Clone ) ]
1454+ #[ derive( Clone , Serialize , Deserialize ) ]
14551455pub struct UpdateExtensionMessage {
14561456 pub for_uuid : String ,
14571457 pub ext : PartExtension ,
14581458}
14591459
1460- #[ derive( Clone ) ]
1460+ #[ derive( Clone , Serialize , Deserialize ) ]
14611461pub enum DeleteTarget {
14621462 Chat ( OperatedChat ) ,
14631463 Messages ( Vec < String > )
14641464}
14651465
1466- #[ derive( Clone ) ]
1466+ #[ derive( Clone , Serialize , Deserialize ) ]
14671467pub struct MoveToRecycleBinMessage {
14681468 pub target : DeleteTarget ,
14691469 pub recoverable_delete_date : u64 ,
14701470}
14711471
1472- #[ derive( Clone ) ]
1472+ #[ derive( Clone , Serialize , Deserialize ) ]
14731473pub struct PermanentDeleteMessage {
14741474 pub target : DeleteTarget ,
14751475 pub is_scheduled : bool ,
14761476}
14771477
14781478
1479- #[ derive( Clone ) ]
1479+ #[ derive( Clone , Serialize , Deserialize ) ]
14801480pub struct UpdateProfileMessage {
14811481 pub profile : Option < ShareProfileMessage > ,
14821482 pub share_contacts : bool ,
@@ -1587,14 +1587,14 @@ impl SetTranscriptBackgroundMessage {
15871587 }
15881588}
15891589
1590- #[ derive( Clone ) ]
1590+ #[ derive( Clone , Serialize , Deserialize ) ]
15911591pub struct TypingApp {
15921592 pub bundle_id : String ,
15931593 pub icon : Vec < u8 > ,
15941594}
15951595
15961596#[ repr( C ) ]
1597- #[ derive( Clone ) ]
1597+ #[ derive( Clone , Serialize , Deserialize ) ]
15981598pub enum Message {
15991599 Message ( NormalMessage ) ,
16001600 RenameMessage ( RenameMessage ) ,
@@ -1903,7 +1903,7 @@ impl From<MMCSFile> for RawMMCSBalloon {
19031903
19041904// a message that can be sent to other iMessage users
19051905#[ repr( C ) ]
1906- #[ derive( Clone ) ]
1906+ #[ derive( Clone , Serialize , Deserialize ) ]
19071907pub struct MessageInst {
19081908 pub id : String ,
19091909 pub sender : Option < String > ,
0 commit comments