pub struct UniValMap<V> {
    data: Vec<Option<V>>,
}
Expand description

From UniIndex to V

Fields§

§data: Vec<Option<V>>

The mapping data. Thanks to Vec we get both fast accesses, and a memory-optimal representation if there are few deletions.

Implementations§

source§

impl<V: PartialEq> UniValMap<V>

source

pub fn identical(&self, other: &Self) -> bool

Exact equality of two maps. Less accurate but faster than equivalent, mostly because of the fast path when the lengths are different.

source

pub fn equivalent(&self, other: &Self) -> bool

Equality up to trailing Nones of two maps, i.e. do they represent the same mapping ?

source§

impl<V> UniValMap<V>

source

pub fn contains_idx(&self, idx: UniIndex) -> bool

Whether this index has an associated value.

source

fn extend_to_length(&mut self, len: usize)

Reserve enough space to insert the value at the right index.

source

pub fn insert(&mut self, idx: UniIndex, val: V)

Assign a value to the index. Permanently overwrites any previous value.

source

pub fn get(&self, idx: UniIndex) -> Option<&V>

Get the value at this index, if it exists.

source

pub fn get_mut(&mut self, idx: UniIndex) -> Option<&mut V>

Get the value at this index mutably, if it exists.

source

pub fn remove(&mut self, idx: UniIndex)

Delete any value associated with this index. Ok even if the index has no associated value.

source§

impl<'a, V> UniValMap<V>

source

pub fn entry(&'a mut self, idx: UniIndex) -> UniEntry<'a, V>

Get a wrapper around a mutable access to the value corresponding to idx.

Trait Implementations§

source§

impl<V: Clone> Clone for UniValMap<V>

source§

fn clone(&self) -> UniValMap<V>

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<V: Debug> Debug for UniValMap<V>

source§

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

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

impl<V> Default for UniValMap<V>

source§

fn default() -> Self

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

impl<V: PartialEq> PartialEq<UniValMap<V>> for UniValMap<V>

source§

fn eq(&self, other: &Self) -> bool

2023-05: We found that using equivalent rather than identical in the equality testing of the RangeMap is neutral for most benchmarks, while being quite beneficial for zip-equal and to a lesser extent for unicode, slice-get-unchecked and backtraces as well.

1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<V: Eq> Eq for UniValMap<V>

source§

impl<V> StructuralEq for UniValMap<V>

Auto Trait Implementations§

§

impl<V> RefUnwindSafe for UniValMap<V>where V: RefUnwindSafe,

§

impl<V> Send for UniValMap<V>where V: Send,

§

impl<V> Sync for UniValMap<V>where V: Sync,

§

impl<V> Unpin for UniValMap<V>where V: Unpin,

§

impl<V> UnwindSafe for UniValMap<V>where V: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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, U> Into<U> for Twhere 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> ToOwned for Twhere 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 Twhere 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 Twhere 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 Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 24 bytes