matrix_sdk_base::linked_chunk

Struct LinkedChunkBuilder

Source
pub struct LinkedChunkBuilder<const CAP: usize, Item, Gap> { /* private fields */ }
Expand description

A data structure to rebuild a linked chunk from its raw representation.

A linked chunk can be rebuilt incrementally from its internal representation, with the chunks being added in any order, as long as they form a single connected component eventually (viz., there’s no subgraphs/sublists isolated from the one final linked list). If they don’t, then the final call to LinkedChunkBuilder::build() will result in an error).

Implementations§

Source§

impl<const CAP: usize, Item, Gap> LinkedChunkBuilder<CAP, Item, Gap>

Source

pub fn new() -> LinkedChunkBuilder<CAP, Item, Gap>

Create an empty LinkedChunkBuilder with no update history.

Source

pub fn push_gap( &mut self, previous: Option<ChunkIdentifier>, id: ChunkIdentifier, next: Option<ChunkIdentifier>, content: Gap, )

Stash a gap chunk with its content.

This can be called even if the previous and next chunks have not been added yet. Resolving these chunks will happen at the time of calling LinkedChunkBuilder::build().

Source

pub fn push_items( &mut self, previous: Option<ChunkIdentifier>, id: ChunkIdentifier, next: Option<ChunkIdentifier>, items: impl IntoIterator<Item = Item>, )

Stash an item chunk with its contents.

This can be called even if the previous and next chunks have not been added yet. Resolving these chunks will happen at the time of calling LinkedChunkBuilder::build().

Source

pub fn with_update_history(&mut self)

Request that the resulting linked chunk will have an update history, as if it were created with LinkedChunk::new_with_update_history.

Source

pub fn build( self, ) -> Result<Option<LinkedChunk<CAP, Item, Gap>>, LinkedChunkBuilderError>

Trait Implementations§

Source§

impl<const CAP: usize, Item, Gap> Default for LinkedChunkBuilder<CAP, Item, Gap>

Source§

fn default() -> LinkedChunkBuilder<CAP, Item, Gap>

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<const CAP: usize, Item, Gap> Freeze for LinkedChunkBuilder<CAP, Item, Gap>

§

impl<const CAP: usize, Item, Gap> RefUnwindSafe for LinkedChunkBuilder<CAP, Item, Gap>
where Gap: RefUnwindSafe, Item: RefUnwindSafe,

§

impl<const CAP: usize, Item, Gap> Send for LinkedChunkBuilder<CAP, Item, Gap>
where Gap: Send, Item: Send,

§

impl<const CAP: usize, Item, Gap> Sync for LinkedChunkBuilder<CAP, Item, Gap>
where Gap: Sync, Item: Sync,

§

impl<const CAP: usize, Item, Gap> Unpin for LinkedChunkBuilder<CAP, Item, Gap>

§

impl<const CAP: usize, Item, Gap> UnwindSafe for LinkedChunkBuilder<CAP, Item, Gap>
where Gap: RefUnwindSafe, Item: RefUnwindSafe,

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