16
16
//!
17
17
//! See [`Timeline`] for details.
18
18
19
- use std:: { fs, path:: PathBuf , pin :: Pin , sync:: Arc , task :: Poll } ;
19
+ use std:: { fs, path:: PathBuf , sync:: Arc } ;
20
20
21
21
use algorithms:: rfind_event_by_item_id;
22
22
use event_item:: { extract_room_msg_edit_content, TimelineItemHandle } ;
@@ -33,7 +33,7 @@ use matrix_sdk::{
33
33
Client , Result ,
34
34
} ;
35
35
use mime:: Mime ;
36
- use pin_project_lite :: pin_project ;
36
+ use pinned_events_loader :: PinnedEventsRoom ;
37
37
use ruma:: {
38
38
api:: client:: receipt:: create_receipt:: v3:: ReceiptType ,
39
39
events:: {
@@ -52,13 +52,13 @@ use ruma::{
52
52
serde:: Raw ,
53
53
EventId , MilliSecondsSinceUnixEpoch , OwnedEventId , OwnedUserId , RoomVersionId , UserId ,
54
54
} ;
55
+ use subscriber:: TimelineStream ;
55
56
use thiserror:: Error ;
56
57
use tracing:: { error, instrument, trace, warn} ;
57
58
58
59
use self :: {
59
60
algorithms:: rfind_event_by_id, controller:: TimelineController , futures:: SendAttachment ,
60
61
} ;
61
- use crate :: timeline:: pinned_events_loader:: PinnedEventsRoom ;
62
62
63
63
mod algorithms;
64
64
mod builder;
@@ -73,6 +73,7 @@ mod item;
73
73
mod pagination;
74
74
mod pinned_events_loader;
75
75
mod reactions;
76
+ mod subscriber;
76
77
#[ cfg( test) ]
77
78
mod tests;
78
79
mod to_device;
@@ -848,31 +849,6 @@ impl Drop for TimelineDropHandle {
848
849
}
849
850
}
850
851
851
- pin_project ! {
852
- struct TimelineStream <S > {
853
- #[ pin]
854
- inner: S ,
855
- drop_handle: Arc <TimelineDropHandle >,
856
- }
857
- }
858
-
859
- impl < S > TimelineStream < S > {
860
- fn new ( inner : S , drop_handle : Arc < TimelineDropHandle > ) -> Self {
861
- Self { inner, drop_handle }
862
- }
863
- }
864
-
865
- impl < S : Stream > Stream for TimelineStream < S > {
866
- type Item = S :: Item ;
867
-
868
- fn poll_next (
869
- self : Pin < & mut Self > ,
870
- cx : & mut std:: task:: Context < ' _ > ,
871
- ) -> Poll < Option < Self :: Item > > {
872
- self . project ( ) . inner . poll_next ( cx)
873
- }
874
- }
875
-
876
852
pub type TimelineEventFilterFn =
877
853
dyn Fn ( & AnySyncTimelineEvent , & RoomVersionId ) -> bool + Send + Sync ;
878
854
0 commit comments