pub struct PredicateSet<'tcx> {
    tcx: TyCtxt<'tcx>,
    set: FxHashSet<Predicate<'tcx>>,
}

Fields§

§tcx: TyCtxt<'tcx>§set: FxHashSet<Predicate<'tcx>>

Implementations§

source§

impl<'tcx> PredicateSet<'tcx>

source

pub fn new(tcx: TyCtxt<'tcx>) -> Self

source

pub fn insert(&mut self, pred: Predicate<'tcx>) -> bool

Adds a predicate to the set.

Returns whether the predicate was newly inserted. That is:

  • If the set did not previously contain this predicate, true is returned.
  • If the set already contained this predicate, false is returned, and the set is not modified: original predicate is not replaced, and the predicate passed as argument is dropped.

Trait Implementations§

source§

impl<'tcx> Extend<Predicate<'tcx>> for PredicateSet<'tcx>

source§

fn extend<I: IntoIterator<Item = Predicate<'tcx>>>(&mut self, iter: I)

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

fn extend_one(&mut self, pred: Predicate<'tcx>)

🔬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

Auto Trait Implementations§

§

impl<'tcx> !RefUnwindSafe for PredicateSet<'tcx>

§

impl<'tcx> !Send for PredicateSet<'tcx>

§

impl<'tcx> !Sync for PredicateSet<'tcx>

§

impl<'tcx> Unpin for PredicateSet<'tcx>

§

impl<'tcx> !UnwindSafe for PredicateSet<'tcx>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

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

Mutably borrows from an owned value. 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 Twhere 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, U> TryFrom<U> for Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.

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: 40 bytes