matrix_sdk::sliding_sync

Struct SlidingSync

Source
pub struct SlidingSync { /* private fields */ }
Expand description

The Sliding Sync instance.

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

Implementations§

Source§

impl SlidingSync

Source

pub fn builder(id: String, client: Client) -> Result<SlidingSyncBuilder, Error>

Create a new SlidingSyncBuilder.

Source

pub fn subscribe_to_rooms( &self, room_ids: &[&RoomId], settings: Option<RoomSubscription>, cancel_in_flight_request: bool, )

Subscribe to many rooms.

If the associated Rooms exist, it will be marked as members are missing, so that it ensures to re-fetch all members.

A subscription to an already subscribed room is ignored.

Source

pub async fn get_room(&self, room_id: &RoomId) -> Option<SlidingSyncRoom>

Lookup a specific room

Source

pub fn get_number_of_rooms(&self) -> usize

Check the number of rooms.

Source

pub async fn on_list<Function, FunctionOutput, R>( &self, list_name: &str, function: Function, ) -> Option<R>
where Function: FnOnce(&SlidingSyncList) -> FunctionOutput, FunctionOutput: Future<Output = R>,

Find a list by its name, and do something on it if it exists.

Source

pub async fn add_list( &self, list_builder: SlidingSyncListBuilder, ) -> Result<Option<SlidingSyncList>>

Add the list to the list of lists.

As lists need to have a unique .name, if a list with the same name is found the new list will replace the old one and the return it or None.

Source

pub async fn add_cached_list( &self, list_builder: SlidingSyncListBuilder, ) -> Result<Option<SlidingSyncList>>

Add a list that will be cached and reloaded from the cache.

This will raise an error if a storage key was not set, or if there was a I/O error reading from the cache.

The rest of the semantics is the same as Self::add_list.

Source

pub async fn get_rooms<I: Iterator<Item = OwnedRoomId>>( &self, room_ids: I, ) -> Vec<Option<SlidingSyncRoom>>

Lookup a set of rooms

Source

pub async fn get_all_rooms(&self) -> Vec<SlidingSyncRoom>

Get all rooms.

Source

pub fn sync(&self) -> impl Stream<Item = Result<UpdateSummary, Error>> + '_

Create a new Sliding Sync sync loop.

This method returns a Stream, which will send requests and will handle responses automatically. Lists and rooms are updated automatically.

This function returns Ok(…) if everything went well, otherwise it will return Err(…). An Err will always lead to the Stream termination.

Source

pub fn stop_sync(&self) -> Result<()>

Force to stop the sync loop (Self::sync) if it’s running.

Usually, dropping the Stream returned by Self::sync should be enough to “stop” it, but depending of how this Stream is used, it might not be obvious to drop it immediately (thinking of using this API over FFI; the foreign-language might not be able to drop a value immediately). Thus, calling this method will ensure that the sync loop stops gracefully and as soon as it returns.

Trait Implementations§

Source§

impl Clone for SlidingSync

Source§

fn clone(&self) -> SlidingSync

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 SlidingSync

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
Source§

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

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

const WITNESS: W = W::MAKE

A constant of the type witness
Source§

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

Source§

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§

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>).
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.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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>,

Source§

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>,

Source§

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.
Source§

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

Source§

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> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T

Source§

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

Source§

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