[][src]Struct chalk_rust_ir::AssociatedTyDatumBound

pub struct AssociatedTyDatumBound<I: Interner> {
    pub bounds: Vec<QuantifiedInlineBound<I>>,
    pub where_clauses: Vec<QuantifiedWhereClause<I>>,
}

Encodes the parts of AssociatedTyDatum where the parameters P0..Pm are in scope (bounds and where_clauses).

Fields

bounds: Vec<QuantifiedInlineBound<I>>

Bounds on the associated type itself.

These must be proven by the implementer, for all possible parameters that would result in a well-formed projection.

where_clauses: Vec<QuantifiedWhereClause<I>>

Where clauses that must hold for the projection to be well-formed.

Trait Implementations

impl<I: Clone + Interner> Clone for AssociatedTyDatumBound<I>[src]

impl<I: Debug + Interner> Debug for AssociatedTyDatumBound<I>[src]

impl<I: Eq + Interner> Eq for AssociatedTyDatumBound<I>[src]

impl<I: Interner, _TI> Fold<I, _TI> for AssociatedTyDatumBound<I> where
    _TI: TargetInterner<I>, 
[src]

type Result = AssociatedTyDatumBound<_TI>

The type of value that will be produced once folding is done. Typically this is Self, unless Self contains borrowed values, in which case owned values are produced (for example, one can fold over a &T value where T: Fold, in which case you get back a T, not a &T). Read more

impl<I: Interner> HasInterner for AssociatedTyDatumBound<I>[src]

type Interner = I

impl<I: Hash + Interner> Hash for AssociatedTyDatumBound<I>[src]

impl<I: PartialEq + Interner> PartialEq<AssociatedTyDatumBound<I>> for AssociatedTyDatumBound<I>[src]

impl<I: Interner> StructuralEq for AssociatedTyDatumBound<I>[src]

impl<I: Interner> StructuralPartialEq for AssociatedTyDatumBound<I>[src]

impl<I: Interner> Visit<I> for AssociatedTyDatumBound<I>[src]

Auto Trait Implementations

impl<I> RefUnwindSafe for AssociatedTyDatumBound<I> where
    <I as Interner>::DefId: RefUnwindSafe,
    <I as Interner>::InternedParameter: RefUnwindSafe,
    <I as Interner>::InternedParameterKinds: RefUnwindSafe,
    <I as Interner>::InternedSubstitution: RefUnwindSafe,
    <I as Interner>::InternedType: RefUnwindSafe

impl<I> Send for AssociatedTyDatumBound<I> where
    <I as Interner>::DefId: Send,
    <I as Interner>::InternedParameter: Send,
    <I as Interner>::InternedParameterKinds: Send,
    <I as Interner>::InternedSubstitution: Send,
    <I as Interner>::InternedType: Send

impl<I> Sync for AssociatedTyDatumBound<I> where
    <I as Interner>::DefId: Sync,
    <I as Interner>::InternedParameter: Sync,
    <I as Interner>::InternedParameterKinds: Sync,
    <I as Interner>::InternedSubstitution: Sync,
    <I as Interner>::InternedType: Sync

impl<I> Unpin for AssociatedTyDatumBound<I> where
    <I as Interner>::DefId: Unpin,
    <I as Interner>::InternedParameter: Unpin,
    <I as Interner>::InternedParameterKinds: Unpin,
    <I as Interner>::InternedSubstitution: Unpin,
    <I as Interner>::InternedType: Unpin

impl<I> UnwindSafe for AssociatedTyDatumBound<I> where
    <I as Interner>::DefId: UnwindSafe,
    <I as Interner>::InternedParameter: UnwindSafe,
    <I as Interner>::InternedParameterKinds: UnwindSafe,
    <I as Interner>::InternedSubstitution: UnwindSafe,
    <I as Interner>::InternedType: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Cast for T[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, I> Shift<I> for T where
    I: Interner,
    T: Fold<I, I>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T, I> VisitExt<I> for T where
    I: Interner,
    T: Visit<I>, 
[src]