pub trait Predicate<I: Interner<Predicate = Self>>:
    Copy
    + Debug
    + Hash
    + Eq
    + TypeSuperVisitable<I>
    + TypeSuperFoldable<I>
    + Flags
    + UpcastFrom<I, PredicateKind<I>>
    + UpcastFrom<I, Binder<I, PredicateKind<I>>>
    + UpcastFrom<I, ClauseKind<I>>
    + UpcastFrom<I, Binder<I, ClauseKind<I>>>
    + UpcastFrom<I, I::Clause>
    + UpcastFrom<I, NormalizesTo<I>>
    + UpcastFrom<I, TraitRef<I>>
    + UpcastFrom<I, Binder<I, TraitRef<I>>>
    + UpcastFrom<I, TraitPredicate<I>>
    + UpcastFrom<I, OutlivesPredicate<I, I::Ty>>
    + UpcastFrom<I, OutlivesPredicate<I, I::Region>>
    + IntoKind<Kind = Binder<I, PredicateKind<I>>>
    + Elaboratable<I> {
    // Required methods
    fn as_clause(self) -> Option<I::Clause>;
    fn allow_normalization(self) -> bool;
    // Provided method
    fn as_normalizes_to(self) -> Option<Binder<I, NormalizesTo<I>>> { ... }
}Required Methods§
Provided Methods§
fn as_normalizes_to(self) -> Option<Binder<I, NormalizesTo<I>>>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.