[][src]Struct persist_o_vec::Persist

pub struct Persist<T> { /* fields omitted */ }

Iteration will not always be in order

Methods

impl<T> Persist<T>[src]

pub fn with_capacity(capacity: usize) -> Persist<T>[src]

Allocate with capacity.

This is the only way to create a new persistent vec.

Panics

Will panic if the selected capacity is larger than the ability for Persist to internally index in to

pub fn with_capacity_filled_by<F>(capacity: usize, func: F) -> Persist<T> where
    F: Fn() -> T, 
[src]

Allocate with capacity and fill with values produced by a closure

This is a secondary way to create a new persistent vec and is a good way to do so if you know the storage needs to be filled.

Panics

Will panic if the selected capacity is larger than the ability for Persist to internally index in to

pub fn with_capacity_from(capacity: usize, slice: &[T]) -> Persist<T> where
    T: Clone
[src]

Allocate with capacity and fill with values copied from slice

Panics

Will panic if the selected capacity is larger than the ability for Persist to internally index in to

pub fn reserve(&mut self, additional: usize)[src]

Reserve extra capacity. This may move the allocations and invalidate any pointers that are held to stored data.

pub fn len(&self) -> usize[src]

Returns the actual used length regardless of capacity

pub fn clear(&mut self)[src]

pub fn get(&self, index: usize) -> Option<&T>[src]

pub fn get_mut(&mut self, index: usize) -> Option<&mut T>[src]

pub fn is_index_live(&self, index: usize) -> bool[src]

Check if there is a value at this index

pub fn push(&mut self, value: T) -> Option<usize>[src]

Push T on to storage.

A push is not guaranteed to push in any particular order if the internal storage has empty locations (typical after many remove). For this reason it will return the index pushed to.

Returns None if there are no free slots left

pub fn insert(&mut self, index: usize, value: T) -> Option<T>[src]

Insert T at location. Returns existing value in that location or None.

Panics

Will panic is the index is out of range

pub fn pop(&mut self) -> Option<T>[src]

Pop the last value in the Persist

pub fn remove(&mut self, index: usize) -> Option<T>[src]

Remove the item at this index and return it if it exists. Does not shift elements after it to the left.

Important traits for Iter<'a, T>
pub fn iter(&self) -> Iter<T>[src]

Important traits for IterMut<'a, T>
pub fn iter_mut(&mut self) -> IterMut<T>[src]

Trait Implementations

impl<T: Clone> Clone for Persist<T>[src]

impl<T: Default> Default for Persist<T>[src]

impl<'_, T: Clone> From<&'_ [T]> for Persist<T>[src]

Total capacity will be set from the length of the slice

impl<'_, T: Clone> From<&'_ mut [T]> for Persist<T>[src]

Total capacity will be set from the length of the slice

Auto Trait Implementations

impl<T> RefUnwindSafe for Persist<T> where
    T: RefUnwindSafe

impl<T> Send for Persist<T> where
    T: Send

impl<T> Sync for Persist<T> where
    T: Sync

impl<T> Unpin for Persist<T> where
    T: Unpin

impl<T> UnwindSafe for Persist<T> where
    T: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.