pub struct SlidingSyncList { /* private fields */ }
Available on crate feature experimental-sliding-sync only.
Expand description

Holding a specific filtered list within the concept of sliding sync.

It is OK to clone this type as much as you need: cloning it is cheap.

Implementations§

source§

impl SlidingSyncList

source

pub fn builder(name: impl Into<String>) -> SlidingSyncListBuilder

Create a new SlidingSyncListBuilder with the given name.

source

pub fn name(&self) -> &str

Get the name of the list.

source

pub fn set_sync_mode<M>(&self, sync_mode: M)

Change the sync-mode.

It is sometimes necessary to change the sync-mode of a list on-the-fly.

This will change the sync-mode but also the request generator. A new request generator is generated. Since requests are calculated based on the request generator, changing the sync-mode is equivalent to “resetting” the list. It’s actually not calling Self::reset, which means that the state is not reset purposely. The ranges and the state will be updated when the next request will be sent and a response will be received. The maximum number of rooms won’t change.

source

pub fn state(&self) -> SlidingSyncListLoadingState

Get the current state.

source

pub fn state_stream( &self ) -> (SlidingSyncListLoadingState, impl Stream<Item = SlidingSyncListLoadingState>)

Get a stream of state updates.

If this list has been reloaded from a cache, the initial value read from the cache will be published.

There’s no guarantee of ordering between items emitted by this stream and those emitted by other streams exposed on this structure.

The first part of the returned tuple is the actual loading state, and the second part is the Stream to receive updates.

source

pub fn timeline_limit(&self) -> Option<Bound>

Get the timeline limit.

source

pub fn set_timeline_limit(&self, timeline: Option<Bound>)

Set timeline limit.

source

pub fn room_list<R>(&self) -> Vec<R>
where R: for<'a> From<&'a RoomListEntry>,

Get the current room list.

source

pub fn room_list_stream( &self ) -> (Vector<RoomListEntry>, impl Stream<Item = Vec<VectorDiff<RoomListEntry>>>)

Get a stream of room list.

If this list has been reloaded from a cache, the initial value read from the cache will be published.

There’s no guarantee of ordering between items emitted by this stream and those emitted by other streams exposed on this structure.

The first part of the returned tuple is the actual room list entries, and the second part is the Stream to receive updates on the room list entries.

source

pub fn maximum_number_of_rooms(&self) -> Option<u32>

Get the maximum number of rooms. See Self::maximum_number_of_rooms to learn more.

source

pub fn maximum_number_of_rooms_stream(&self) -> Subscriber<Option<u32>>

Get a stream of rooms count.

If this list has been reloaded from a cache, the initial value is published too.

There’s no guarantee of ordering between items emitted by this stream and those emitted by other streams exposed on this structure.

source

pub fn get_room_id(&self, index: usize) -> Option<OwnedRoomId>

Return the room_id at the given index.

source

pub fn maybe_commit_sticky(&mut self, txn_id: &TransactionId)

Commit the set of sticky parameters for this list.

source

pub fn invalidate_sticky_data(&self)

Manually invalidate the sticky data, so the sticky parameters are re-sent next time.

Trait Implementations§

source§

impl Clone for SlidingSyncList

source§

fn clone(&self) -> SlidingSyncList

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SlidingSyncList

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CompatExt for T

§

fn compat(self) -> Compat<T>

Applies the [Compat] adapter by value. Read more
§

fn compat_ref(&self) -> Compat<&T>

Applies the [Compat] adapter by shared reference. Read more
§

fn compat_mut(&mut self) -> Compat<&mut T>

Applies the [Compat] adapter by mutable reference. Read more
source§

impl<T> DynClone for T
where T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromRef<T> for T
where T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

impl<T> FutureExt for T

§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
§

impl<T, UT> HandleAlloc<UT> for T
where T: Send + Sync,

§

fn new_handle(value: Arc<T>) -> Handle

Create a new handle for an Arc value Read more
§

fn clone_handle(handle: Handle) -> Handle

Clone a handle Read more
§

fn consume_handle(handle: Handle) -> Arc<T>

Consume a handle, getting back the initial Arc<>
§

fn get_arc(handle: Handle) -> Arc<Self>

Get a clone of the Arc<> using a “borrowed” handle. Read more
§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

§

const WITNESS: W = W::MAKE

A constant of the type witness
§

impl<T> Identity for T
where T: ?Sized,

§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> Any for T
where T: Any,

source§

impl<T> AsyncTraitDeps for T

source§

impl<T> CloneAny for T
where T: Any + Clone,

source§

impl<T> CloneAnySend for T
where T: Any + Send + Clone,

source§

impl<T> CloneAnySendSync for T
where T: Any + Send + Sync + Clone,

source§

impl<T> CloneAnySync for T
where T: Any + Sync + Clone,

source§

impl<T> SendOutsideWasm for T
where T: Send,

source§

impl<T> SyncOutsideWasm for T
where T: Sync,