@@ -152,6 +152,11 @@ pub(super) enum TimelineEventKind {
152152}
153153
154154impl TimelineEventKind {
155+ /// Create a new [`TimelineEventKind::AddItem`] with no edit json.
156+ fn add_item ( content : TimelineItemContent ) -> Self {
157+ Self :: AddItem { content, edit_json : None }
158+ }
159+
155160 /// Creates a new `TimelineEventKind`.
156161 ///
157162 /// # Arguments
@@ -182,10 +187,7 @@ impl TimelineEventKind {
182187 if let Some ( redacts) = ev. redacts ( & room_version) . map ( ToOwned :: to_owned) {
183188 Self :: Redaction { redacts }
184189 } else {
185- Self :: AddItem {
186- content : redacted_message_or_none ( ev. event_type ( ) ) ?,
187- edit_json : None ,
188- }
190+ Self :: add_item ( redacted_message_or_none ( ev. event_type ( ) ) ?)
189191 }
190192 }
191193
@@ -211,10 +213,7 @@ impl TimelineEventKind {
211213 . await ;
212214 }
213215
214- Self :: AddItem {
215- content : TimelineItemContent :: unable_to_decrypt ( content, utd_cause) ,
216- edit_json : None ,
217- }
216+ Self :: add_item ( TimelineItemContent :: unable_to_decrypt ( content, utd_cause) )
218217 } else {
219218 // If we get here, it means that some part of the code has created a
220219 // `TimelineEvent` containing an `m.room.encrypted` event
@@ -228,41 +227,33 @@ impl TimelineEventKind {
228227 }
229228 }
230229 Some ( content) => Self :: Message { content, relations : ev. relations ( ) } ,
231- None => Self :: AddItem {
232- content : redacted_message_or_none ( ev. event_type ( ) ) ?,
233- edit_json : None ,
234- } ,
230+ None => Self :: add_item ( redacted_message_or_none ( ev. event_type ( ) ) ?) ,
235231 } ,
236232
237233 AnySyncTimelineEvent :: State ( ev) => match ev {
238234 AnySyncStateEvent :: RoomMember ( ev) => match ev {
239- SyncStateEvent :: Original ( ev) => Self :: AddItem {
240- content : TimelineItemContent :: room_member (
235+ SyncStateEvent :: Original ( ev) => {
236+ Self :: add_item ( TimelineItemContent :: room_member (
241237 ev. state_key ,
242238 FullStateEventContent :: Original {
243239 content : ev. content ,
244240 prev_content : ev. unsigned . prev_content ,
245241 } ,
246242 ev. sender ,
247- ) ,
248- edit_json : None ,
249- } ,
250- SyncStateEvent :: Redacted ( ev) => Self :: AddItem {
251- content : TimelineItemContent :: room_member (
243+ ) )
244+ }
245+ SyncStateEvent :: Redacted ( ev) => {
246+ Self :: add_item ( TimelineItemContent :: room_member (
252247 ev. state_key ,
253248 FullStateEventContent :: Redacted ( ev. content ) ,
254249 ev. sender ,
255- ) ,
256- edit_json : None ,
257- } ,
258- } ,
259- ev => Self :: AddItem {
260- content : TimelineItemContent :: OtherState ( OtherState {
261- state_key : ev. state_key ( ) . to_owned ( ) ,
262- content : AnyOtherFullStateEventContent :: with_event_content ( ev. content ( ) ) ,
263- } ) ,
264- edit_json : None ,
250+ ) )
251+ }
265252 } ,
253+ ev => Self :: add_item ( TimelineItemContent :: OtherState ( OtherState {
254+ state_key : ev. state_key ( ) . to_owned ( ) ,
255+ content : AnyOtherFullStateEventContent :: with_event_content ( ev. content ( ) ) ,
256+ } ) ) ,
266257 } ,
267258 } )
268259 }
@@ -273,36 +264,32 @@ impl TimelineEventKind {
273264 ) -> Self {
274265 let error = Arc :: new ( error) ;
275266 match event {
276- SyncTimelineEventWithoutContent :: OriginalMessageLike ( ev) => Self :: AddItem {
277- content : TimelineItemContent :: FailedToParseMessageLike {
267+ SyncTimelineEventWithoutContent :: OriginalMessageLike ( ev) => {
268+ Self :: add_item ( TimelineItemContent :: FailedToParseMessageLike {
278269 event_type : ev. content . event_type ,
279270 error,
280- } ,
281- edit_json : None ,
282- } ,
283- SyncTimelineEventWithoutContent :: RedactedMessageLike ( ev) => Self :: AddItem {
284- content : TimelineItemContent :: FailedToParseMessageLike {
271+ } )
272+ }
273+ SyncTimelineEventWithoutContent :: RedactedMessageLike ( ev) => {
274+ Self :: add_item ( TimelineItemContent :: FailedToParseMessageLike {
285275 event_type : ev. content . event_type ,
286276 error,
287- } ,
288- edit_json : None ,
289- } ,
290- SyncTimelineEventWithoutContent :: OriginalState ( ev) => Self :: AddItem {
291- content : TimelineItemContent :: FailedToParseState {
277+ } )
278+ }
279+ SyncTimelineEventWithoutContent :: OriginalState ( ev) => {
280+ Self :: add_item ( TimelineItemContent :: FailedToParseState {
292281 event_type : ev. content . event_type ,
293282 state_key : ev. state_key ,
294283 error,
295- } ,
296- edit_json : None ,
297- } ,
298- SyncTimelineEventWithoutContent :: RedactedState ( ev) => Self :: AddItem {
299- content : TimelineItemContent :: FailedToParseState {
284+ } )
285+ }
286+ SyncTimelineEventWithoutContent :: RedactedState ( ev) => {
287+ Self :: add_item ( TimelineItemContent :: FailedToParseState {
300288 event_type : ev. content . event_type ,
301289 state_key : ev. state_key ,
302290 error,
303- } ,
304- edit_json : None ,
305- } ,
291+ } )
292+ }
306293 }
307294 }
308295}
0 commit comments