Struct ra_ap_rustc_data_structures::unord::UnordBag
source · pub struct UnordBag<V> { /* private fields */ }
Expand description
This is a collection type that tries very hard to not expose any internal iteration. This is a useful property when trying to uphold the determinism invariants imposed by the query system.
This collection type is a good choice for collections the
keys of which don’t have a semantic ordering and don’t implement
Hash
or Eq
.
See MCP 533 for more information.
Implementations§
Trait Implementations§
source§impl<T> Extend<T> for UnordBag<T>
impl<T> Extend<T> for UnordBag<T>
source§fn extend<I: IntoIterator<Item = T>>(&mut self, iter: I)
fn extend<I: IntoIterator<Item = T>>(&mut self, iter: I)
Extends a collection with the contents of an iterator. Read more
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
🔬This is a nightly-only experimental API. (
extend_one
)Extends a collection with exactly one element.
source§fn extend_reserve(&mut self, additional: usize)
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<T, I: Iterator<Item = T>> From<UnordItems<T, I>> for UnordBag<T>
impl<T, I: Iterator<Item = T>> From<UnordItems<T, I>> for UnordBag<T>
source§fn from(value: UnordItems<T, I>) -> Self
fn from(value: UnordItems<T, I>) -> Self
Converts to this type from the input type.
source§impl<HCX, V: Hash + Eq + HashStable<HCX>> HashStable<HCX> for UnordBag<V>
impl<HCX, V: Hash + Eq + HashStable<HCX>> HashStable<HCX> for UnordBag<V>
fn hash_stable(&self, hcx: &mut HCX, hasher: &mut StableHasher)
source§impl<T> !IntoIterator for UnordBag<T>
impl<T> !IntoIterator for UnordBag<T>
source§impl<V: PartialEq> PartialEq for UnordBag<V>
impl<V: PartialEq> PartialEq for UnordBag<V>
impl<V: Eq> Eq for UnordBag<V>
impl<V> StructuralEq for UnordBag<V>
impl<V> StructuralPartialEq for UnordBag<V>
Auto Trait Implementations§
impl<V> RefUnwindSafe for UnordBag<V>where
V: RefUnwindSafe,
impl<V> Send for UnordBag<V>where
V: Send,
impl<V> Sync for UnordBag<V>where
V: Sync,
impl<V> Unpin for UnordBag<V>where
V: Unpin,
impl<V> UnwindSafe for UnordBag<V>where
V: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.source§impl<C, T> ExtendUnord<T> for Cwhere
C: Extend<T> + UnordCollection,
impl<C, T> ExtendUnord<T> for Cwhere
C: Extend<T> + UnordCollection,
source§fn extend_unord<I>(&mut self, items: UnordItems<T, I>)where
I: Iterator<Item = T>,
fn extend_unord<I>(&mut self, items: UnordItems<T, I>)where
I: Iterator<Item = T>,
Extend this unord collection with the given
UnordItems
.
This method is called extend_unord
instead of just extend
so it
does not conflict with Extend::extend
. Otherwise there would be many
places where the two methods would have to be explicitly disambiguated
via UFCS.