miri::borrow_tracker::tree_borrows::unimap

Struct UniValMap

Source
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) -> Option<V>

Delete any value associated with this index. Returns None if the value was not present, otherwise returns the previously stored 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 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

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>

Auto Trait Implementations§

§

impl<V> Freeze for UniValMap<V>

§

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

impl<V, T> VZip<V> for T
where 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