@@ -40,6 +40,28 @@ pub enum Event {
4040 ClientConnect ( ClientConnect ) ,
4141 /// Status update in the current channel, indicating that a user has disconnected.
4242 ClientDisconnect ( ClientDisconnect ) ,
43+ /// DAVE: Signals the bot is ready for group operations after epoch transition.
44+ DaveTransitionReady ( DaveTransitionReady ) ,
45+ /// DAVE: Notifies of an upcoming epoch change.
46+ DavePrepareEpoch ( DavePrepareEpoch ) ,
47+ /// DAVE: Provides the external sender package for MLS group initialization.
48+ DaveMlsExternalSender ( DaveMlsExternalSender ) ,
49+ /// DAVE: Sends the key package for MLS group participation.
50+ DaveMlsKeyPackage ( DaveMlsKeyPackage ) ,
51+ /// DAVE: Provides proposals for group member changes.
52+ DaveMlsProposals ( DaveMlsProposals ) ,
53+ /// DAVE: Provides a commit with optional welcome for group transitions.
54+ DaveMlsCommitWelcome ( DaveMlsCommitWelcome ) ,
55+ /// DAVE: Provides the welcome message for new members.
56+ DaveMlsWelcome ( DaveMlsWelcome ) ,
57+ /// DAVE: Prepares for a protocol transition.
58+ DavePrepareTransition ( DavePrepareTransition ) ,
59+ /// DAVE: Executes a prepared protocol transition.
60+ DaveExecuteTransition ( DaveExecuteTransition ) ,
61+ /// DAVE: Announces a commit for group transition.
62+ DaveMlsAnnounceCommitTransition ( DaveMlsAnnounceCommitTransition ) ,
63+ /// DAVE: Reports an invalid commit or welcome message.
64+ DaveMlsInvalidCommitWelcome ( DaveMlsInvalidCommitWelcome ) ,
4365}
4466
4567impl Event {
@@ -58,6 +80,17 @@ impl Event {
5880 Resumed => Opcode :: Resumed ,
5981 ClientConnect ( _) => Opcode :: ClientConnect ,
6082 ClientDisconnect ( _) => Opcode :: ClientDisconnect ,
83+ DaveTransitionReady ( _) => Opcode :: DaveTransitionReady ,
84+ DavePrepareEpoch ( _) => Opcode :: DavePrepareEpoch ,
85+ DaveMlsExternalSender ( _) => Opcode :: DaveMlsExternalSender ,
86+ DaveMlsKeyPackage ( _) => Opcode :: DaveMlsKeyPackage ,
87+ DaveMlsProposals ( _) => Opcode :: DaveMlsProposals ,
88+ DaveMlsCommitWelcome ( _) => Opcode :: DaveMlsCommitWelcome ,
89+ DaveMlsWelcome ( _) => Opcode :: DaveMlsWelcome ,
90+ DavePrepareTransition ( _) => Opcode :: DavePrepareTransition ,
91+ DaveExecuteTransition ( _) => Opcode :: DaveExecuteTransition ,
92+ DaveMlsAnnounceCommitTransition ( _) => Opcode :: DaveMlsAnnounceCommitTransition ,
93+ DaveMlsInvalidCommitWelcome ( _) => Opcode :: DaveMlsInvalidCommitWelcome ,
6194 }
6295 }
6396}
@@ -85,6 +118,17 @@ impl Serialize for Event {
85118 Resumed => s. serialize_field ( "d" , & None :: < ( ) > ) ?,
86119 ClientConnect ( e) => s. serialize_field ( "d" , e) ?,
87120 ClientDisconnect ( e) => s. serialize_field ( "d" , e) ?,
121+ DaveTransitionReady ( e) => s. serialize_field ( "d" , e) ?,
122+ DavePrepareEpoch ( e) => s. serialize_field ( "d" , e) ?,
123+ DaveMlsExternalSender ( e) => s. serialize_field ( "d" , e) ?,
124+ DaveMlsKeyPackage ( e) => s. serialize_field ( "d" , e) ?,
125+ DaveMlsProposals ( e) => s. serialize_field ( "d" , e) ?,
126+ DaveMlsCommitWelcome ( e) => s. serialize_field ( "d" , e) ?,
127+ DaveMlsWelcome ( e) => s. serialize_field ( "d" , e) ?,
128+ DavePrepareTransition ( e) => s. serialize_field ( "d" , e) ?,
129+ DaveExecuteTransition ( e) => s. serialize_field ( "d" , e) ?,
130+ DaveMlsAnnounceCommitTransition ( e) => s. serialize_field ( "d" , e) ?,
131+ DaveMlsInvalidCommitWelcome ( e) => s. serialize_field ( "d" , e) ?,
88132 }
89133
90134 s. end ( )
@@ -115,7 +159,7 @@ impl<'de> Visitor<'de> for EventVisitor {
115159 let valid_op = Opcode :: deserialize ( des) . map_err ( |_| {
116160 DeError :: invalid_value (
117161 Unexpected :: Unsigned ( raw. into ( ) ) ,
118- & "opcode in [0--9] + [12--13]" ,
162+ & "opcode in [0--9] + [12--13] + [21--24] + [26--31] " ,
119163 )
120164 } ) ?;
121165 op = Some ( valid_op) ;
@@ -143,6 +187,28 @@ impl<'de> Visitor<'de> for EventVisitor {
143187 return Ok ( map. next_value :: < ClientConnect > ( ) ?. into ( ) ) ,
144188 Some ( Opcode :: ClientDisconnect ) =>
145189 return Ok ( map. next_value :: < ClientDisconnect > ( ) ?. into ( ) ) ,
190+ Some ( Opcode :: DaveTransitionReady ) =>
191+ return Ok ( map. next_value :: < DaveTransitionReady > ( ) ?. into ( ) ) ,
192+ Some ( Opcode :: DavePrepareEpoch ) =>
193+ return Ok ( map. next_value :: < DavePrepareEpoch > ( ) ?. into ( ) ) ,
194+ Some ( Opcode :: DaveMlsExternalSender ) =>
195+ return Ok ( map. next_value :: < DaveMlsExternalSender > ( ) ?. into ( ) ) ,
196+ Some ( Opcode :: DaveMlsKeyPackage ) =>
197+ return Ok ( map. next_value :: < DaveMlsKeyPackage > ( ) ?. into ( ) ) ,
198+ Some ( Opcode :: DaveMlsProposals ) =>
199+ return Ok ( map. next_value :: < DaveMlsProposals > ( ) ?. into ( ) ) ,
200+ Some ( Opcode :: DaveMlsCommitWelcome ) =>
201+ return Ok ( map. next_value :: < DaveMlsCommitWelcome > ( ) ?. into ( ) ) ,
202+ Some ( Opcode :: DaveMlsWelcome ) =>
203+ return Ok ( map. next_value :: < DaveMlsWelcome > ( ) ?. into ( ) ) ,
204+ Some ( Opcode :: DavePrepareTransition ) =>
205+ return Ok ( map. next_value :: < DavePrepareTransition > ( ) ?. into ( ) ) ,
206+ Some ( Opcode :: DaveExecuteTransition ) =>
207+ return Ok ( map. next_value :: < DaveExecuteTransition > ( ) ?. into ( ) ) ,
208+ Some ( Opcode :: DaveMlsAnnounceCommitTransition ) =>
209+ return Ok ( map. next_value :: < DaveMlsAnnounceCommitTransition > ( ) ?. into ( ) ) ,
210+ Some ( Opcode :: DaveMlsInvalidCommitWelcome ) =>
211+ return Ok ( map. next_value :: < DaveMlsInvalidCommitWelcome > ( ) ?. into ( ) ) ,
146212 None => {
147213 d = Some ( map. next_value :: < & RawValue > ( ) ?) ;
148214 } ,
@@ -178,6 +244,25 @@ impl<'de> Visitor<'de> for EventVisitor {
178244 Opcode :: Resumed => Ok ( Event :: Resumed ) ,
179245 Opcode :: ClientConnect => serde_json:: from_str :: < ClientConnect > ( d) . map ( Into :: into) ,
180246 Opcode :: ClientDisconnect => serde_json:: from_str :: < ClientDisconnect > ( d) . map ( Into :: into) ,
247+ Opcode :: DaveTransitionReady =>
248+ serde_json:: from_str :: < DaveTransitionReady > ( d) . map ( Into :: into) ,
249+ Opcode :: DavePrepareEpoch => serde_json:: from_str :: < DavePrepareEpoch > ( d) . map ( Into :: into) ,
250+ Opcode :: DaveMlsExternalSender =>
251+ serde_json:: from_str :: < DaveMlsExternalSender > ( d) . map ( Into :: into) ,
252+ Opcode :: DaveMlsKeyPackage =>
253+ serde_json:: from_str :: < DaveMlsKeyPackage > ( d) . map ( Into :: into) ,
254+ Opcode :: DaveMlsProposals => serde_json:: from_str :: < DaveMlsProposals > ( d) . map ( Into :: into) ,
255+ Opcode :: DaveMlsCommitWelcome =>
256+ serde_json:: from_str :: < DaveMlsCommitWelcome > ( d) . map ( Into :: into) ,
257+ Opcode :: DaveMlsWelcome => serde_json:: from_str :: < DaveMlsWelcome > ( d) . map ( Into :: into) ,
258+ Opcode :: DavePrepareTransition =>
259+ serde_json:: from_str :: < DavePrepareTransition > ( d) . map ( Into :: into) ,
260+ Opcode :: DaveExecuteTransition =>
261+ serde_json:: from_str :: < DaveExecuteTransition > ( d) . map ( Into :: into) ,
262+ Opcode :: DaveMlsAnnounceCommitTransition =>
263+ serde_json:: from_str :: < DaveMlsAnnounceCommitTransition > ( d) . map ( Into :: into) ,
264+ Opcode :: DaveMlsInvalidCommitWelcome =>
265+ serde_json:: from_str :: < DaveMlsInvalidCommitWelcome > ( d) . map ( Into :: into) ,
181266 } )
182267 . map_err ( DeError :: custom)
183268 }
0 commit comments