cairo_lang_utils::ordered_hash_set

Struct OrderedHashSet

source
pub struct OrderedHashSet<Key, BH = RandomState>(/* private fields */);

Implementations§

source§

impl<Key, BH> OrderedHashSet<Key, BH>

source

pub fn iter(&self) -> Iter<'_, Key>

Returns an iterator over the values of the set, in their order.

source§

impl<Key: Hash + Eq, BH> OrderedHashSet<Key, BH>

source

pub fn len(&self) -> usize

Returns the number of elements in the set.

source

pub fn is_empty(&self) -> bool

Returns true if the set contains no elements.

source

pub fn clear(&mut self)

Remove all elements in the set, while preserving its capacity.

Computes in O(n) time.

source§

impl<Key: Hash + Eq, BH: BuildHasher> OrderedHashSet<Key, BH>

source

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.

source

pub fn extend<I: IntoIterator<Item = Key>>(&mut self, iter: I)

Extends the set with the content of the given iterator.

source

pub fn contains<Q: ?Sized + Hash + Equivalent<Key>>(&self, value: &Q) -> bool

Returns true if an equivalent to value exists in the set.

source

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.

source

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.

source

pub fn difference<'a, S2>( &'a self, other: &'a OrderedHashSet<Key, S2>, ) -> Difference<'a, Key, S2>
where S2: BuildHasher,

source

pub fn is_subset<S2: BuildHasher>( &self, other: &OrderedHashSet<Key, S2>, ) -> bool

Returns true if all elements of self are contained in other.

source

pub fn is_superset<S2: BuildHasher>( &self, other: &OrderedHashSet<Key, S2>, ) -> bool

Returns true if all elements of other are contained in self.

source

pub fn union<'a, BH2: BuildHasher>( &'a self, other: &'a OrderedHashSet<Key, BH2>, ) -> Union<'a, Key, BH>

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, BH: Clone> Clone for OrderedHashSet<Key, BH>

source§

fn clone(&self) -> OrderedHashSet<Key, BH>

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<Key: Debug, BH: Debug> Debug for OrderedHashSet<Key, BH>

source§

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

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

impl<Key, BH: Default> Default for OrderedHashSet<Key, BH>

source§

fn default() -> Self

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

impl<Key: Hash + Eq, BH: BuildHasher + Default> FromIterator<Key> for OrderedHashSet<Key, BH>

source§

fn from_iter<T: IntoIterator<Item = Key>>(iter: T) -> Self

Creates a value from an iterator. Read more
source§

impl<'a, Key, BH> IntoIterator for &'a OrderedHashSet<Key, BH>

source§

type Item = &'a Key

The type of the elements being iterated over.
source§

type IntoIter = <&'a IndexSet<Key, BH> as IntoIterator>::IntoIter

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

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<Key, BH> IntoIterator for OrderedHashSet<Key, BH>

source§

type Item = Key

The type of the elements being iterated over.
source§

type IntoIter = <IndexSet<Key, BH> as IntoIterator>::IntoIter

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

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<Key: Eq, BH> PartialEq for OrderedHashSet<Key, BH>

source§

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

Tests for self and other values to be equal, and is used by ==.
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<'a, Key, BH> Sub for &'a OrderedHashSet<Key, BH>
where &'a IndexSet<Key, BH>: Sub<Output = IndexSet<Key, BH>>,

source§

type Output = OrderedHashSet<Key, BH>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Self) -> Self::Output

Performs the - operation. Read more
source§

impl<Key: Eq, BH> Eq for OrderedHashSet<Key, BH>

Auto Trait Implementations§

§

impl<Key, BH> Freeze for OrderedHashSet<Key, BH>
where BH: Freeze,

§

impl<Key, BH> RefUnwindSafe for OrderedHashSet<Key, BH>
where BH: RefUnwindSafe, Key: RefUnwindSafe,

§

impl<Key, BH> Send for OrderedHashSet<Key, BH>
where BH: Send, Key: Send,

§

impl<Key, BH> Sync for OrderedHashSet<Key, BH>
where BH: Sync, Key: Sync,

§

impl<Key, BH> Unpin for OrderedHashSet<Key, BH>
where BH: Unpin, Key: Unpin,

§

impl<Key, BH> UnwindSafe for OrderedHashSet<Key, BH>
where BH: UnwindSafe, Key: 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 T)

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

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

source§

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

Checks if this value is equivalent to the given key. Read more
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> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
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.
source§

impl<T> Upcast<T> for T
where T: ?Sized,

source§

fn upcast(&self) -> &T

source§

impl<T> UpcastMut<T> for T
where T: ?Sized,

source§

fn upcast_mut(&mut self) -> &mut T