ObservableVectorTransaction

Struct ObservableVectorTransaction 

Source
pub struct ObservableVectorTransaction<'o, T: Clone> { /* private fields */ }
Expand description

A transaction that allows making multiple updates to an ObservableVector as an atomic unit.

For updates from the transaction to have affect, it has to be finalized with .commit(). If the transaction is dropped without that method being called, the updates will be discarded.

Implementations§

Source§

impl<'o, T: Clone + 'static> ObservableVectorTransaction<'o, T>

Source

pub fn commit(self)

Commit this transaction, persisting the changes and notifying subscribers.

Source

pub fn rollback(&mut self)

Roll back all changes made using this transaction so far.

Same as dropping the transaction and starting a new one, semantically.

Source

pub fn append(&mut self, values: Vector<T>)

Append the given elements at the end of the Vector and notify subscribers.

Source

pub fn clear(&mut self)

Clear out all of the elements in this Vector and notify subscribers.

Source

pub fn push_front(&mut self, value: T)

Add an element at the front of the list and notify subscribers.

Source

pub fn push_back(&mut self, value: T)

Add an element at the back of the list and notify subscribers.

Source

pub fn pop_front(&mut self) -> Option<T>

Remove the first element, notify subscribers and return the element.

If there are no elements, subscribers will not be notified and this method will return None.

Source

pub fn pop_back(&mut self) -> Option<T>

Remove the last element, notify subscribers and return the element.

If there are no elements, subscribers will not be notified and this method will return None.

Source

pub fn insert(&mut self, index: usize, value: T)

Insert an element at the given position and notify subscribers.

§Panics

Panics if index > len.

Source

pub fn set(&mut self, index: usize, value: T) -> T

Replace the element at the given position, notify subscribers and return the previous element at that position.

§Panics

Panics if index >= len.

Source

pub fn remove(&mut self, index: usize) -> T

Remove the element at the given position, notify subscribers and return the element.

§Panics

Panics if index >= len.

Source

pub fn truncate(&mut self, len: usize)

Truncate the vector to len elements and notify subscribers.

Does nothing if len is greater or equal to the vector’s current length.

Source

pub fn entry( &mut self, index: usize, ) -> ObservableVectorTransactionEntry<'_, 'o, T>

Gets an entry for the given index through which only the element at that index alone can be updated or removed.

§Panics

Panics if index >= len.

Source

pub fn for_each( &mut self, f: impl FnMut(ObservableVectorTransactionEntry<'_, 'o, T>), )

Call the given closure for every element in this ObservableVector, with an entry struct that allows updating or removing that element.

Iteration happens in order, i.e. starting at index 0.

Source

pub fn entries(&mut self) -> ObservableVectorTransactionEntries<'_, 'o, T>

Get an iterator over all the entries in this ObservableVector.

This is a more flexible, but less convenient alternative to for_each. If you don’t need to use special control flow like .await or break when iterating, it’s recommended to use that method instead.

Because std’s Iterator trait does not allow iterator items to borrow from the iterator itself, the returned typed does not implement the Iterator trait and can thus not be used with a for loop. Instead, you have to call its .next() method directly, as in:

let mut entries = ob.entries();
while let Some(entry) = entries.next() {
    // use entry
}

Trait Implementations§

Source§

impl<T> Debug for ObservableVectorTransaction<'_, T>
where T: Clone + Debug,

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<T: Clone> Deref for ObservableVectorTransaction<'_, T>

Source§

type Target = GenericVector<T, ArcK>

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<T: Clone> Drop for ObservableVectorTransaction<'_, T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<'o, T> Freeze for ObservableVectorTransaction<'o, T>

§

impl<'o, T> !RefUnwindSafe for ObservableVectorTransaction<'o, T>

§

impl<'o, T> Send for ObservableVectorTransaction<'o, T>
where T: Send + Sync,

§

impl<'o, T> Sync for ObservableVectorTransaction<'o, T>
where T: Sync + Send,

§

impl<'o, T> Unpin for ObservableVectorTransaction<'o, T>
where T: Unpin,

§

impl<'o, T> !UnwindSafe for ObservableVectorTransaction<'o, T>

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> 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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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<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