pub struct JoinedRoomDetails {
pub timeline: Arc<Timeline>,
pub timeline_update_sender: Sender<TimelineUpdate>,
pub timeline_singleton_endpoints: Option<(Receiver<TimelineUpdate>, TimelineRequestSender)>,
pub typing_notice_subscriber: Option<EventHandlerDropGuard>,
/* private fields */
}Expand description
Backend-specific details about a joined room that our client currently knows about.
Fields§
§timeline: Arc<Timeline>A reference to this room’s timeline of events.
timeline_update_sender: Sender<TimelineUpdate>An instance of the clone-able sender that can be used to send updates to this room’s timeline.
timeline_singleton_endpoints: Option<(Receiver<TimelineUpdate>, TimelineRequestSender)>A tuple of two separate channel endpoints that can only be taken once by the main UI thread.
- The single receiver that can receive updates to this room’s timeline.
- When a new room is joined, an unbounded crossbeam channel will be created
and its sender given to a background task (the
timeline_subscriber_handler()) that enqueues timeline updates as it receives timeline vector diffs from the server. - The UI thread can take ownership of this update receiver in order to receive updates to this room’s timeline, but only one receiver can exist at a time.
- When a new room is joined, an unbounded crossbeam channel will be created
and its sender given to a background task (the
- The sender that can send requests to the background timeline subscriber handler, e.g., to watch for a specific event to be prepended to the timeline (via back pagination).
typing_notice_subscriber: Option<EventHandlerDropGuard>A drop guard for the event handler that represents a subscription to typing notices for this room.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for JoinedRoomDetails
impl !RefUnwindSafe for JoinedRoomDetails
impl Send for JoinedRoomDetails
impl Sync for JoinedRoomDetails
impl Unpin for JoinedRoomDetails
impl !UnwindSafe for JoinedRoomDetails
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more