pub struct CallerBoundsAccessor<I, Iter, CF>{
clauses: Iter,
clause_filter: CF,
cx: PhantomData<I>,
}Fields§
§clauses: Iter§clause_filter: CF§cx: PhantomData<I>Implementations§
Source§impl<I, Iter> CallerBoundsAccessor<I, Iter, NoClauses>
impl<I, Iter> CallerBoundsAccessor<I, Iter, NoClauses>
pub fn non_trait_clauses(self) -> CallerBoundsAccessor<I, Iter, NonTraitClauses>
pub fn trait_clauses( self, cx: I, ) -> CallerBoundsAccessor<I, Iter, TraitClauses<I, (), (), (), OutputAsTraitClause>>
Sourcepub fn all_clauses(self, _cx: I) -> CallerBoundsAccessor<I, Iter, AllClauses>
pub fn all_clauses(self, _cx: I) -> CallerBoundsAccessor<I, Iter, AllClauses>
Warning: may be a performance hazzard!
Source§impl<I, Iter, P, S, T, O> CallerBoundsAccessor<I, Iter, TraitClauses<I, P, S, T, O>>where
I: Interner,
Iter: Iterator<Item = I::Clause>,
P: PolarityFilter,
S: SelfTyFilter<I>,
T: TraitFilter<I>,
O: OutputAs<I>,
impl<I, Iter, P, S, T, O> CallerBoundsAccessor<I, Iter, TraitClauses<I, P, S, T, O>>where
I: Interner,
Iter: Iterator<Item = I::Clause>,
P: PolarityFilter,
S: SelfTyFilter<I>,
T: TraitFilter<I>,
O: OutputAs<I>,
pub fn with_polarity( self, polarity: ClausePolarity, ) -> CallerBoundsAccessor<I, Iter, TraitClauses<I, ClausePolarity, S, T, O>>
pub fn validate_self_ty<F: Fn(I::Ty) -> bool>( self, validate_fn: F, ) -> CallerBoundsAccessor<I, Iter, TraitClauses<I, P, FilterFn<F>, T, O>>
pub fn with_self_ty( self, desired_self_ty: I::Ty, ) -> CallerBoundsAccessor<I, Iter, TraitClauses<I, P, FilterFn<impl Fn(I::Ty) -> bool>, T, O>>
pub fn for_trait( self, def_id: I::TraitId, ) -> CallerBoundsAccessor<I, Iter, TraitClauses<I, P, S, TraitWithId<I>, O>>
pub fn for_trait_lang_item( self, lang_item: SolverTraitLangItem, ) -> CallerBoundsAccessor<I, Iter, TraitClauses<I, P, S, TraitWithId<I>, O>>
pub fn interned( self, ) -> CallerBoundsAccessor<I, Iter, TraitClauses<I, P, S, T, OutputAsInternedClause>>
Trait Implementations§
Source§impl<I, Iter> CallerBoundsIterator<I, Iter> for CallerBoundsAccessor<I, Iter, NonTraitClauses>
impl<I, Iter> CallerBoundsIterator<I, Iter> for CallerBoundsAccessor<I, Iter, NonTraitClauses>
Source§impl<I, Iter> CallerBoundsIterator<I, Iter> for CallerBoundsAccessor<I, Iter, AllClauses>
impl<I, Iter> CallerBoundsIterator<I, Iter> for CallerBoundsAccessor<I, Iter, AllClauses>
Source§impl<I, Iter, P, S, T, O> CallerBoundsIterator<I, Iter> for CallerBoundsAccessor<I, Iter, TraitClauses<I, P, S, T, O>>where
I: Interner,
Iter: Iterator<Item = I::Clause>,
P: PolarityFilter,
S: SelfTyFilter<I>,
T: TraitFilter<I>,
O: OutputAs<I>,
impl<I, Iter, P, S, T, O> CallerBoundsIterator<I, Iter> for CallerBoundsAccessor<I, Iter, TraitClauses<I, P, S, T, O>>where
I: Interner,
Iter: Iterator<Item = I::Clause>,
P: PolarityFilter,
S: SelfTyFilter<I>,
T: TraitFilter<I>,
O: OutputAs<I>,
Auto Trait Implementations§
impl<I, Iter, CF> DynSend for CallerBoundsAccessor<I, Iter, CF>
impl<I, Iter, CF> DynSync for CallerBoundsAccessor<I, Iter, CF>
impl<I, Iter, CF> Forget for CallerBoundsAccessor<I, Iter, CF>
impl<I, Iter, CF> Freeze for CallerBoundsAccessor<I, Iter, CF>
impl<I, Iter, CF> RefUnwindSafe for CallerBoundsAccessor<I, Iter, CF>
impl<I, Iter, CF> Send for CallerBoundsAccessor<I, Iter, CF>
impl<I, Iter, CF> Sync for CallerBoundsAccessor<I, Iter, CF>
impl<I, Iter, CF> Unpin for CallerBoundsAccessor<I, Iter, CF>
impl<I, Iter, CF> UnsafeUnpin for CallerBoundsAccessor<I, Iter, CF>
impl<I, Iter, CF> UnwindSafe for CallerBoundsAccessor<I, Iter, CF>
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
Source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
Source§impl<I, T> UpcastFrom<I, T> for T
impl<I, T> UpcastFrom<I, T> for T
fn upcast_from(from: T, _tcx: I) -> T
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
Source§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Layout§
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.