Struct cairo_lang_utils::ordered_hash_set::OrderedHashSet
source · pub struct OrderedHashSet<Key: Hash + Eq, S = RandomState>(/* private fields */);
Implementations§
source§impl<Key: Hash + Eq> OrderedHashSet<Key>
impl<Key: Hash + Eq> OrderedHashSet<Key>
sourcepub fn new() -> Self
pub fn new() -> Self
Creates an empty OrderedHashSet
.
The hash set is initially created with a capacity of 0, so it will not allocate until it is first inserted into.
sourcepub fn iter(&self) -> Iter<'_, Key>
pub fn iter(&self) -> Iter<'_, Key>
Returns an iterator over the values of the set, in their order.
sourcepub fn insert(&mut self, key: Key) -> bool
pub fn insert(&mut self, key: Key) -> bool
Inserts the value into the set.
If an equivalent item already exists in the set, returns false
. Otherwise, returns true
.
sourcepub fn extend<I: IntoIterator<Item = Key>>(&mut self, iter: I)
pub fn extend<I: IntoIterator<Item = Key>>(&mut self, iter: I)
Extends the set with the content of the given iterator.
sourcepub fn contains<Q: ?Sized + Hash + Equivalent<Key>>(&self, value: &Q) -> bool
pub fn contains<Q: ?Sized + Hash + Equivalent<Key>>(&self, value: &Q) -> bool
Returns true if an equivalent to value exists in the set.
sourcepub fn clear(&mut self)
pub fn clear(&mut self)
Remove all elements in the set, while preserving its capacity.
Computes in O(n) time.
sourcepub fn shift_remove<Q: ?Sized + Hash + Equivalent<Key>>(
&mut self,
value: &Q
) -> bool
pub fn shift_remove<Q: ?Sized + Hash + Equivalent<Key>>( &mut self, value: &Q ) -> bool
Removes the value from the set, preserving the order of elements.
Returns true if the value was present in the set.
sourcepub fn swap_remove<Q: ?Sized + Hash + Equivalent<Key>>(
&mut self,
value: &Q
) -> bool
pub fn swap_remove<Q: ?Sized + Hash + Equivalent<Key>>( &mut self, value: &Q ) -> bool
Removes the value by swapping it with the last element, thus the order of elements is not preserved, but the resulting order is still deterministic.
Returns true if the value was present in the set.
pub fn difference<'a, S2>(
&'a self,
other: &'a OrderedHashSet<Key, S2>
) -> Difference<'a, Key, S2>where
S2: BuildHasher,
sourcepub fn is_subset<S2: BuildHasher>(
&self,
other: &OrderedHashSet<Key, S2>
) -> bool
pub fn is_subset<S2: BuildHasher>( &self, other: &OrderedHashSet<Key, S2> ) -> bool
Returns true
if all elements of self
are contained in other
.
sourcepub fn is_superset<S2: BuildHasher>(
&self,
other: &OrderedHashSet<Key, S2>
) -> bool
pub fn is_superset<S2: BuildHasher>( &self, other: &OrderedHashSet<Key, S2> ) -> bool
Returns true
if all elements of other
are contained in self
.
source§impl<Key: Hash + Eq, S: BuildHasher> OrderedHashSet<Key, S>
impl<Key: Hash + Eq, S: BuildHasher> OrderedHashSet<Key, S>
sourcepub fn union<'a, S2: BuildHasher>(
&'a self,
other: &'a OrderedHashSet<Key, S2>
) -> Union<'a, Key, S>
pub fn union<'a, S2: BuildHasher>( &'a self, other: &'a OrderedHashSet<Key, S2> ) -> Union<'a, Key, S>
Return an iterator over all values that are either in self
or other
.
Values from self
are produced in their original order, followed by
values that are unique to other
in their original order.
Trait Implementations§
source§impl<Key: Clone + Hash + Eq, S: Clone> Clone for OrderedHashSet<Key, S>
impl<Key: Clone + Hash + Eq, S: Clone> Clone for OrderedHashSet<Key, S>
source§fn clone(&self) -> OrderedHashSet<Key, S>
fn clone(&self) -> OrderedHashSet<Key, S>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<'de, K: Hash + Eq + Deserialize<'de>> Deserialize<'de> for OrderedHashSet<K>
impl<'de, K: Hash + Eq + Deserialize<'de>> Deserialize<'de> for OrderedHashSet<K>
source§fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>
fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>
source§impl<Key: Hash + Eq> FromIterator<Key> for OrderedHashSet<Key>
impl<Key: Hash + Eq> FromIterator<Key> for OrderedHashSet<Key>
source§fn from_iter<T: IntoIterator<Item = Key>>(iter: T) -> Self
fn from_iter<T: IntoIterator<Item = Key>>(iter: T) -> Self
source§impl<'a, Key: Hash + Eq> IntoIterator for &'a OrderedHashSet<Key>
impl<'a, Key: Hash + Eq> IntoIterator for &'a OrderedHashSet<Key>
source§impl<Key: Hash + Eq> IntoIterator for OrderedHashSet<Key>
impl<Key: Hash + Eq> IntoIterator for OrderedHashSet<Key>
source§impl<Key: Hash + Eq> PartialEq for OrderedHashSet<Key>
impl<Key: Hash + Eq> PartialEq for OrderedHashSet<Key>
impl<Key: Hash + Eq> Eq for OrderedHashSet<Key>
Auto Trait Implementations§
impl<Key, S> RefUnwindSafe for OrderedHashSet<Key, S>where
Key: RefUnwindSafe,
S: RefUnwindSafe,
impl<Key, S> Send for OrderedHashSet<Key, S>
impl<Key, S> Sync for OrderedHashSet<Key, S>
impl<Key, S> Unpin for OrderedHashSet<Key, S>
impl<Key, S> UnwindSafe for OrderedHashSet<Key, S>where
Key: UnwindSafe,
S: 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
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§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
§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
key
and return true
if they are equal.