pub trait Predicate<I>:
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 as Interner>::Clause>
+ UpcastFrom<I, NormalizesTo<I>>
+ UpcastFrom<I, TraitRef<I>>
+ UpcastFrom<I, Binder<I, TraitRef<I>>>
+ UpcastFrom<I, TraitPredicate<I>>
+ UpcastFrom<I, OutlivesPredicate<I, <I as Interner>::Ty>>
+ UpcastFrom<I, OutlivesPredicate<I, <I as Interner>::Region>>
+ IntoKind<Kind = Binder<I, PredicateKind<I>>>
+ Elaboratable<I>where
I: Interner<Predicate = Self>,{
// Required methods
fn as_clause(self) -> Option<<I as Interner>::Clause>;
fn is_coinductive(self, interner: I) -> bool;
fn allow_normalization(self) -> bool;
}
Required Methods§
fn as_clause(self) -> Option<<I as Interner>::Clause>
fn is_coinductive(self, interner: I) -> bool
fn allow_normalization(self) -> bool
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.