Skip to main content

BTreeIndexMultiMap

Struct BTreeIndexMultiMap 

Source
pub struct BTreeIndexMultiMap<K, V> { /* private fields */ }
Expand description

BTree-based multi-map with stable entry indices.

Each key may map to any number of values. Entries are stored in a Vec and assigned a stable index equal to their position in that Vec. The index of an entry does not change as long as no entry is removed. A B-tree over the keys provides O(log n) lookup, insertion, and removal, while the Vec backing allows O(1) random access by index.

§Example

use btree_indexmap::BTreeIndexMultiMap;

let mut map = BTreeIndexMultiMap::new();

// Multiple values per key, each with its own stable index.
map.push_back("fruit", "apple");
map.push_back("veggie", "carrot");
map.push_back("fruit", "banana");

assert_eq!(map.key_occurences("fruit"), 2);

let fruits: Vec<_> = map.get("fruit").copied().collect();
assert_eq!(fruits, ["apple", "banana"]);

Implementations§

Source§

impl<K, V> BTreeIndexMultiMap<K, V>

Source

pub fn new() -> Self

Creates a new, empty multi-map.

Source

pub fn with_capacity(cap: usize) -> Self

Creates a new, empty multi-map with space reserved for at least cap entries.

Source

pub fn singleton(key: K, value: V) -> Self
where K: Ord,

Creates a new multi-map containing the single (key, value) entry.

Source

pub fn clear(&mut self)

Removes all entries from the map.

This keeps the capacity allocated for the entries.

Source

pub fn capacity(&self) -> usize

Returns the number of entries the map can hold without reallocating.

Source

pub fn as_entries(&self) -> &[(K, V)]

Returns the entries of the map as a slice, in insertion (index) order.

Source

pub fn is_empty(&self) -> bool

Returns true if the map contains no entries.

Source

pub fn len(&self) -> usize

Returns the total number of entries in the map.

Source

pub fn first(&self) -> Option<(&K, &V)>

Returns the key and value of the first entry in the map (in insertion order), if any.

Source

pub fn last(&self) -> Option<(&K, &V)>

Returns the key and value of the last entry in the map (in insertion order), if any.

Source

pub fn contains_key<Q>(&self, key: &Q) -> bool
where Q: ?Sized + Comparable<K>,

Returns true if the map contains at least one entry for key.

Source

pub fn key_occurences<Q>(&self, key: &Q) -> usize
where Q: ?Sized + Comparable<K>,

Returns the number of entries associated with key.

Source

pub fn indexes_of<Q>(&self, key: &Q) -> IndexesIter<'_> ⓘ
where Q: ?Sized + Comparable<K>,

Returns an iterator over the indexes of every entry associated with key.

Source

pub fn index_of<Q>(&self, key: &Q) -> Option<usize>
where Q: ?Sized + Comparable<K>,

Returns the index of the first entry associated with key.

Source

pub fn get_indexed_entries<Q>(&self, key: &Q) -> GetIndexedEntries<'_, K, V> ⓘ
where Q: ?Sized + Comparable<K>,

Returns an iterator over (index, &key, &value) for every entry associated with key.

Source

pub fn get_or_insert_indexed_entries_with( &mut self, key: K, f: impl FnOnce() -> V, ) -> GetIndexedEntries<'_, K, V> ⓘ
where K: Ord,

Returns an iterator over (index, &key, &value) for every entry associated with key, inserting a single new entry with a value produced by f if key was not already present.

Source

pub fn get_or_insert_indexed_entries( &mut self, key: K, value: V, ) -> GetIndexedEntries<'_, K, V> ⓘ
where K: Ord,

Returns an iterator over (index, &key, &value) for every entry associated with key, inserting a single new entry with value if key was not already present.

Source

pub fn get_entries<Q>(&self, key: &Q) -> GetEntries<'_, K, V> ⓘ
where Q: ?Sized + Comparable<K>,

Returns an iterator over (&key, &value) for every entry associated with key.

Source

pub fn get_or_insert_entries_with( &mut self, key: K, f: impl FnOnce() -> V, ) -> GetEntries<'_, K, V> ⓘ
where K: Ord,

Returns an iterator over (&key, &value) for every entry associated with key, inserting a single new entry with a value produced by f if key was not already present.

Source

pub fn get_or_insert_entries( &mut self, key: K, value: V, ) -> GetEntries<'_, K, V> ⓘ
where K: Ord,

Returns an iterator over (&key, &value) for every entry associated with key, inserting a single new entry with value if key was not already present.

Source

pub fn get<Q>(&self, key: &Q) -> Get<'_, K, V> ⓘ
where Q: ?Sized + Comparable<K>,

Returns an iterator over a reference to the value of every entry associated with key.

Source

pub fn get_or_insert_with( &mut self, key: K, f: impl FnOnce() -> V, ) -> Get<'_, K, V> ⓘ
where K: Ord,

Returns an iterator over a reference to the value of every entry associated with key, inserting a single new entry with a value produced by f if key was not already present.

Source

pub fn get_or_insert(&mut self, key: K, value: V) -> Get<'_, K, V> ⓘ
where K: Ord,

Returns an iterator over a reference to the value of every entry associated with key, inserting a single new entry with value if key was not already present.

Source

pub fn get_indexed<Q>(&self, key: &Q) -> GetIndexed<'_, K, V> ⓘ
where Q: ?Sized + Comparable<K>,

Returns an iterator over (index, &value) for every entry associated with key.

Source

pub fn get_or_insert_indexed_with( &mut self, key: K, f: impl FnOnce() -> V, ) -> GetIndexed<'_, K, V> ⓘ
where K: Ord,

Returns an iterator over (index, &value) for every entry associated with key, inserting a single new entry with a value produced by f if key was not already present.

Source

pub fn get_or_insert_indexed( &mut self, key: K, value: V, ) -> GetIndexed<'_, K, V> ⓘ
where K: Ord,

Returns an iterator over (index, &value) for every entry associated with key, inserting a single new entry with value if key was not already present.

Source

pub fn get_indexed_entries_mut<Q>( &mut self, key: &Q, ) -> GetIndexedEntriesMut<'_, K, V> ⓘ
where Q: ?Sized + Comparable<K>,

Returns an iterator over (index, &key, &mut value) for every entry associated with key.

Source

pub fn get_or_insert_indexed_entries_mut_with( &mut self, key: K, f: impl FnOnce() -> V, ) -> GetIndexedEntriesMut<'_, K, V> ⓘ
where K: Ord,

Returns an iterator over (index, &key, &mut value) for every entry associated with key, inserting a single new entry with a value produced by f if key was not already present.

Source

pub fn get_or_insert_indexed_entries_mut( &mut self, key: K, value: V, ) -> GetIndexedEntriesMut<'_, K, V> ⓘ
where K: Ord,

Returns an iterator over (index, &key, &mut value) for every entry associated with key, inserting a single new entry with value if key was not already present.

Source

pub fn get_entries_mut<Q>(&mut self, key: &Q) -> GetEntriesMut<'_, K, V> ⓘ
where Q: ?Sized + Comparable<K>,

Returns an iterator over (&key, &mut value) for every entry associated with key.

Source

pub fn get_or_insert_entries_mut_with( &mut self, key: K, f: impl FnOnce() -> V, ) -> GetEntriesMut<'_, K, V> ⓘ
where K: Ord,

Returns an iterator over (&key, &mut value) for every entry associated with key, inserting a single new entry with a value produced by f if key was not already present.

Source

pub fn get_or_insert_entries_mut( &mut self, key: K, value: V, ) -> GetEntriesMut<'_, K, V> ⓘ
where K: Ord,

Returns an iterator over (&key, &mut value) for every entry associated with key, inserting a single new entry with value if key was not already present.

Source

pub fn get_mut<Q>(&mut self, key: &Q) -> GetMut<'_, K, V> ⓘ
where Q: ?Sized + Comparable<K>,

Returns an iterator over a mutable reference to the value of every entry associated with key.

Source

pub fn get_or_insert_mut_with( &mut self, key: K, f: impl FnOnce() -> V, ) -> GetMut<'_, K, V> ⓘ
where K: Ord,

Returns an iterator over a mutable reference to the value of every entry associated with key, inserting a single new entry with a value produced by f if key was not already present.

Source

pub fn get_or_insert_mut(&mut self, key: K, value: V) -> GetMut<'_, K, V> ⓘ
where K: Ord,

Returns an iterator over a mutable reference to the value of every entry associated with key, inserting a single new entry with value if key was not already present.

Source

pub fn entry(&mut self, key: K) -> Entry<'_, K, V>
where K: Ord,

Gets the entry associated with key for in-place manipulation.

§Example
use btree_indexmap::{BTreeIndexMultiMap, multi_map::Entry};

let mut map: BTreeIndexMultiMap<&str, i32> = BTreeIndexMultiMap::new();

match map.entry("a") {
    Entry::Vacant(e) => {
        e.insert(1);
    }
    Entry::Occupied(_) => unreachable!(),
}

assert_eq!(map.get("a").next(), Some(&1));
Source

pub fn push_back(&mut self, key: K, value: V) -> (usize, bool)
where K: Ord,

Inserts a new entry at the end of the map.

Returns the index of the new entry, and whether key was not already present in the map.

Source

pub fn insert_at(&mut self, index: usize, key: K, value: V) -> bool
where K: Ord,

Inserts a new entry at the given index.

Returns whether key was not already present in the map.

§Panics

Panics if index > len.

Source

pub fn push_front(&mut self, key: K, value: V) -> bool
where K: Ord,

Inserts a new entry at the front of the map.

Returns whether key was not already present in the map.

Source

pub fn shift_insert_full( &mut self, key: K, value: V, ) -> (usize, ShiftInsert<'_, K, V>)
where K: Ord,

Inserts a (key, value) entry, keeping only this occurrence of key.

If key was already present, replaces its first occurrence and removes every other one (using shift semantics), returning the index of the kept entry and an iterator over the values it replaced or removed. Otherwise, appends a new entry and returns its index with an empty iterator.

Source

pub fn shift_insert(&mut self, key: K, value: V) -> ShiftInsert<'_, K, V> ⓘ
where K: Ord,

Inserts a (key, value) entry, keeping only this occurrence of key.

See Self::shift_insert_full.

Source

pub fn swap_insert_full( &mut self, key: K, value: V, ) -> (usize, SwapInsert<'_, K, V>)
where K: Ord,

Inserts a (key, value) entry, keeping only this occurrence of key.

If key was already present, replaces its first occurrence and removes every other one (using swap semantics), returning the index of the kept entry and an iterator over the values it replaced or removed. Otherwise, appends a new entry and returns its index with an empty iterator.

Source

pub fn swap_insert(&mut self, key: K, value: V) -> SwapInsert<'_, K, V> ⓘ
where K: Ord,

Inserts a (key, value) entry, keeping only this occurrence of key.

See Self::swap_insert_full.

Source

pub fn shift_insert_front( &mut self, key: K, value: V, ) -> ShiftInsertFront<'_, K, V> ⓘ
where K: Ord,

Inserts a (key, value) entry at the front of the map, replacing every previous occurrence of key.

Returns an iterator over the values of the removed occurrences, removed using shift semantics.

Source

pub fn swap_insert_front( &mut self, key: K, value: V, ) -> SwapInsertFront<'_, K, V> ⓘ
where K: Ord,

Inserts a (key, value) entry at the front of the map, replacing every previous occurrence of key.

Returns an iterator over the values of the removed occurrences, removed using swap semantics.

Source

pub fn shift_insert_back_full( &mut self, key: K, value: V, ) -> (usize, ShiftInsertBack<'_, K, V>)
where K: Ord,

Inserts a (key, value) entry at the end of the map, replacing every previous occurrence of key.

Returns the index of the new entry and an iterator over the values of the removed occurrences, removed using shift semantics.

Source

pub fn shift_insert_back( &mut self, key: K, value: V, ) -> ShiftInsertBack<'_, K, V> ⓘ
where K: Ord,

Inserts a (key, value) entry at the end of the map, replacing every previous occurrence of key.

Returns an iterator over the values of the removed occurrences, removed using shift semantics.

Source

pub fn insert(&mut self, key: K, value: V) -> ShiftInsertBack<'_, K, V> ⓘ
where K: Ord,

Inserts a (key, value) entry, keeping only this occurrence of key.

This is an alias for Self::shift_insert_back.

Source

pub fn swap_insert_back_full( &mut self, key: K, value: V, ) -> (usize, SwapInsertBack<'_, K, V>)
where K: Ord,

Inserts a (key, value) entry at the end of the map, replacing every previous occurrence of key.

Returns the index of the new entry and an iterator over the values of the removed occurrences, removed using swap semantics.

Source

pub fn swap_insert_back(&mut self, key: K, value: V) -> SwapInsertBack<'_, K, V> ⓘ
where K: Ord,

Inserts a (key, value) entry at the end of the map, replacing every previous occurrence of key.

Returns an iterator over the values of the removed occurrences, removed using swap semantics.

Source

pub fn shift_remove_at(&mut self, i: usize) -> Option<(K, V)>
where K: Ord,

Removes the entry at the given index, returning its key and value, if it was present.

Shifts every following entry one index down.

Source

pub fn swap_remove_at(&mut self, i: usize) -> Option<(K, V)>
where K: Ord,

Removes the entry at the given index, returning its key and value, if it was present.

Moves the last entry into the removed slot.

Source

pub fn shift_remove_indexed_entries<Q>( &mut self, key: &Q, ) -> ShiftRemoveIndexedEntries<'_, K, V> ⓘ
where Q: ?Sized + Comparable<K>,

Removes every entry associated with key, returning an iterator over (index, key, value) for each removed entry.

Shifts the remaining entries down to fill the gaps.

Source

pub fn shift_remove_entries<Q>( &mut self, key: &Q, ) -> ShiftRemoveEntries<'_, K, V> ⓘ
where Q: ?Sized + Comparable<K>,

Removes every entry associated with key, returning an iterator over (key, value) for each removed entry.

Shifts the remaining entries down to fill the gaps.

Source

pub fn shift_remove<Q>(&mut self, key: &Q) -> ShiftRemove<'_, K, V> ⓘ
where Q: ?Sized + Comparable<K>,

Removes every entry associated with key, returning an iterator over the value of each removed entry.

Shifts the remaining entries down to fill the gaps.

Source

pub fn swap_remove_indexed_entries<Q>( &mut self, key: &Q, ) -> SwapRemoveIndexedEntries<'_, K, V> ⓘ
where Q: ?Sized + Comparable<K>, K: Ord,

Removes every entry associated with key, returning an iterator over (index, key, value) for each removed entry.

Moves entries from the end of the map into the gaps.

Source

pub fn swap_remove_entries<Q>(&mut self, key: &Q) -> SwapRemoveEntries<'_, K, V> ⓘ
where Q: ?Sized + Comparable<K>, K: Ord,

Removes every entry associated with key, returning an iterator over (key, value) for each removed entry.

Moves entries from the end of the map into the gaps.

Source

pub fn swap_remove<Q>(&mut self, key: &Q) -> SwapRemove<'_, K, V> ⓘ
where Q: ?Sized + Comparable<K>, K: Ord,

Removes every entry associated with key, returning an iterator over the value of each removed entry.

Moves entries from the end of the map into the gaps.

Source

pub fn iter(&self) -> Iter<'_, K, V> ⓘ

Returns an iterator over the entries of the map, in insertion (index) order.

Source

pub fn iter_mut(&mut self) -> IterMut<'_, K, V> ⓘ

Returns an iterator over the entries of the map, with a mutable reference to the value, in insertion (index) order.

Source

pub fn iter_sorted(&self) -> IterSorted<'_, K, V> ⓘ

Returns an iterator over the entries of the map, sorted by key according to K’s implementation of Ord.

Entries that share the same key are visited in insertion (index) order.

Source

pub fn iter_mut_sorted(&mut self) -> IterMutSorted<'_, K, V> ⓘ

Returns an iterator over the entries of the map, with a mutable reference to the value, sorted by key according to K’s implementation of Ord.

Entries that share the same key are visited in insertion (index) order.

Source

pub fn into_iter_sorted(self) -> IntoIterSorted<K, V> ⓘ

Turns this map into an iterator over its entries, sorted by key according to K’s implementation of Ord.

Entries that share the same key are visited in insertion (index) order.

Source

pub fn keys(&self) -> Keys<'_, K, V> ⓘ

Returns an iterator over the keys of the map, in insertion (index) order.

Source

pub fn values(&self) -> Values<'_, K, V> ⓘ

Returns an iterator over the values of the map, in insertion (index) order.

Source

pub fn values_mut(&mut self) -> ValuesMut<'_, K, V> ⓘ

Returns an iterator over mutable references to the values of the map, in insertion (index) order.

Source

pub fn sort(&mut self)
where K: Ord,

Sort the entries by key name.

The relative order of entries with the same key is unchanged.

Trait Implementations§

Source§

impl<K: Clone, V: Clone> Clone for BTreeIndexMultiMap<K, V>

Source§

fn clone(&self) -> BTreeIndexMultiMap<K, V>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<K: Debug, V: Debug> Debug for BTreeIndexMultiMap<K, V>

Source§

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

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

impl<K, V> Default for BTreeIndexMultiMap<K, V>

Source§

fn default() -> Self

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

impl<K: Eq, V: Eq> Eq for BTreeIndexMultiMap<K, V>

Source§

impl<K: Ord, V> Extend<(K, V)> for BTreeIndexMultiMap<K, V>

Source§

fn extend<T: IntoIterator<Item = (K, V)>>(&mut self, iter: T)

Extends a collection with the contents of an iterator. Read more
Source§

fn extend_one(&mut self, item: T)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
Source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
Source§

impl<K: Ord, V> FromIterator<(K, V)> for BTreeIndexMultiMap<K, V>

Source§

fn from_iter<T: IntoIterator<Item = (K, V)>>(iter: T) -> Self

Creates a value from an iterator. Read more
Source§

impl<K: Hash, V: Hash> Hash for BTreeIndexMultiMap<K, V>

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<K, V, Q> Index<&Q> for BTreeIndexMultiMap<K, V>
where Q: ?Sized + Comparable<K>,

Source§

fn index(&self, key: &Q) -> &Self::Output

§Panics

Panics if key is not found in the map.

Source§

type Output = V

The returned type after indexing.
Source§

impl<K, V> IntoIterator for BTreeIndexMultiMap<K, V>

Source§

type IntoIter = IntoIter<(K, V)>

Which kind of iterator are we turning this into?
Source§

type Item = (K, V)

The type of the elements being iterated over.
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
Source§

impl<'a, K, V> IntoIterator for &'a BTreeIndexMultiMap<K, V>

Source§

type IntoIter = Iter<'a, K, V>

Which kind of iterator are we turning this into?
Source§

type Item = (&'a K, &'a V)

The type of the elements being iterated over.
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
Source§

impl<'a, K, V> IntoIterator for &'a mut BTreeIndexMultiMap<K, V>

Source§

type IntoIter = IterMut<'a, K, V>

Which kind of iterator are we turning this into?
Source§

type Item = (&'a K, &'a mut V)

The type of the elements being iterated over.
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
Source§

impl<K: Ord, V: Ord> Ord for BTreeIndexMultiMap<K, V>

Source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 (const: unstable) · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 (const: unstable) · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

fn clamp_to<R>(self, range: R) -> Self
where Self: Sized, R: ClampBounds<Self>,

🔬This is a nightly-only experimental API. (clamp_to)
Restrict a value to a certain range. Read more
Source§

impl<K: PartialEq, V: PartialEq> PartialEq for BTreeIndexMultiMap<K, V>

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl<K: PartialOrd, V: PartialOrd> PartialOrd for BTreeIndexMultiMap<K, V>

Source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · Source§

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

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 (const: unstable) · Source§

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

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 (const: unstable) · Source§

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

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 (const: unstable) · Source§

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

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more

Auto Trait Implementations§

§

impl<K, V> Freeze for BTreeIndexMultiMap<K, V>
where Vec<(K, V)>: Freeze,

§

impl<K, V> RefUnwindSafe for BTreeIndexMultiMap<K, V>

§

impl<K, V> Send for BTreeIndexMultiMap<K, V>
where Vec<(K, V)>: Send,

§

impl<K, V> Sync for BTreeIndexMultiMap<K, V>
where Vec<(K, V)>: Sync,

§

impl<K, V> Unpin for BTreeIndexMultiMap<K, V>
where Vec<(K, V)>: Unpin,

§

impl<K, V> UnsafeUnpin for BTreeIndexMultiMap<K, V>

§

impl<K, V> UnwindSafe for BTreeIndexMultiMap<K, V>

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, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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> 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 = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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.