@@ -40,79 +40,81 @@ use super::{
40
40
TimelineKey ,
41
41
} ;
42
42
43
- pub ( super ) fn handle_live_event (
44
- raw : Raw < AnySyncTimelineEvent > ,
45
- encryption_info : Option < EncryptionInfo > ,
46
- own_user_id : & UserId ,
47
- timeline : & TimelineInner ,
48
- ) {
49
- handle_remote_event ( raw, encryption_info, own_user_id, TimelineItemPosition :: End , timeline)
50
- }
43
+ impl TimelineInner {
44
+ pub ( super ) fn handle_live_event (
45
+ & self ,
46
+ raw : Raw < AnySyncTimelineEvent > ,
47
+ encryption_info : Option < EncryptionInfo > ,
48
+ own_user_id : & UserId ,
49
+ ) {
50
+ self . handle_remote_event ( raw, encryption_info, own_user_id, TimelineItemPosition :: End )
51
+ }
51
52
52
- pub ( super ) fn handle_local_event (
53
- txn_id : OwnedTransactionId ,
54
- content : AnyMessageLikeEventContent ,
55
- own_user_id : & UserId ,
56
- timeline : & TimelineInner ,
57
- ) {
58
- let meta = TimelineEventMetadata {
59
- sender : own_user_id. to_owned ( ) ,
60
- origin_server_ts : None ,
61
- raw_event : None ,
62
- is_own_event : true ,
63
- relations : None ,
64
- // FIXME: Should we supply something here for encrypted rooms?
65
- encryption_info : None ,
66
- } ;
67
-
68
- let flow = Flow :: Local { txn_id } ;
69
- let kind = TimelineEventKind :: Message { content } ;
70
-
71
- TimelineEventHandler :: new ( meta, flow, timeline) . handle_event ( kind)
72
- }
53
+ pub ( super ) fn handle_local_event (
54
+ & self ,
55
+ txn_id : OwnedTransactionId ,
56
+ content : AnyMessageLikeEventContent ,
57
+ own_user_id : & UserId ,
58
+ ) {
59
+ let meta = TimelineEventMetadata {
60
+ sender : own_user_id. to_owned ( ) ,
61
+ origin_server_ts : None ,
62
+ raw_event : None ,
63
+ is_own_event : true ,
64
+ relations : None ,
65
+ // FIXME: Should we supply something here for encrypted rooms?
66
+ encryption_info : None ,
67
+ } ;
73
68
74
- pub ( super ) fn handle_back_paginated_event (
75
- raw : Raw < AnySyncTimelineEvent > ,
76
- encryption_info : Option < EncryptionInfo > ,
77
- own_user_id : & UserId ,
78
- timeline : & TimelineInner ,
79
- ) {
80
- handle_remote_event ( raw, encryption_info, own_user_id, TimelineItemPosition :: Start , timeline)
81
- }
69
+ let flow = Flow :: Local { txn_id } ;
70
+ let kind = TimelineEventKind :: Message { content } ;
82
71
83
- fn handle_remote_event (
84
- raw : Raw < AnySyncTimelineEvent > ,
85
- encryption_info : Option < EncryptionInfo > ,
86
- own_user_id : & UserId ,
87
- position : TimelineItemPosition ,
88
- timeline : & TimelineInner ,
89
- ) {
90
- let event = match raw. deserialize ( ) {
91
- Ok ( ev) => ev,
92
- Err ( _e) => {
93
- // TODO: Add some sort of error timeline item
94
- return ;
95
- }
96
- } ;
97
-
98
- let sender = event. sender ( ) . to_owned ( ) ;
99
- let is_own_event = sender == own_user_id;
100
-
101
- let meta = TimelineEventMetadata {
102
- raw_event : Some ( raw) ,
103
- sender,
104
- origin_server_ts : Some ( event. origin_server_ts ( ) ) ,
105
- is_own_event,
106
- relations : event. relations ( ) . cloned ( ) ,
107
- encryption_info,
108
- } ;
109
- let flow = Flow :: Remote {
110
- event_id : event. event_id ( ) . to_owned ( ) ,
111
- txn_id : event. transaction_id ( ) . map ( ToOwned :: to_owned) ,
112
- position,
113
- } ;
114
-
115
- TimelineEventHandler :: new ( meta, flow, timeline) . handle_event ( event. into ( ) )
72
+ TimelineEventHandler :: new ( meta, flow, self ) . handle_event ( kind)
73
+ }
74
+
75
+ pub ( super ) fn handle_back_paginated_event (
76
+ & self ,
77
+ raw : Raw < AnySyncTimelineEvent > ,
78
+ encryption_info : Option < EncryptionInfo > ,
79
+ own_user_id : & UserId ,
80
+ ) {
81
+ self . handle_remote_event ( raw, encryption_info, own_user_id, TimelineItemPosition :: Start )
82
+ }
83
+
84
+ fn handle_remote_event (
85
+ & self ,
86
+ raw : Raw < AnySyncTimelineEvent > ,
87
+ encryption_info : Option < EncryptionInfo > ,
88
+ own_user_id : & UserId ,
89
+ position : TimelineItemPosition ,
90
+ ) {
91
+ let event = match raw. deserialize ( ) {
92
+ Ok ( ev) => ev,
93
+ Err ( _e) => {
94
+ // TODO: Add some sort of error timeline item
95
+ return ;
96
+ }
97
+ } ;
98
+
99
+ let sender = event. sender ( ) . to_owned ( ) ;
100
+ let is_own_event = sender == own_user_id;
101
+
102
+ let meta = TimelineEventMetadata {
103
+ raw_event : Some ( raw) ,
104
+ sender,
105
+ origin_server_ts : Some ( event. origin_server_ts ( ) ) ,
106
+ is_own_event,
107
+ relations : event. relations ( ) . cloned ( ) ,
108
+ encryption_info,
109
+ } ;
110
+ let flow = Flow :: Remote {
111
+ event_id : event. event_id ( ) . to_owned ( ) ,
112
+ txn_id : event. transaction_id ( ) . map ( ToOwned :: to_owned) ,
113
+ position,
114
+ } ;
115
+
116
+ TimelineEventHandler :: new ( meta, flow, self ) . handle_event ( event. into ( ) )
117
+ }
116
118
}
117
119
118
120
enum Flow {
0 commit comments