pub trait Const<I>:
Copy
+ Debug
+ Hash
+ Eq
+ Into<<I as Interner>::GenericArg>
+ Into<<I as Interner>::Term>
+ IntoKind<Kind = ConstKind<I>>
+ TypeSuperVisitable<I>
+ TypeSuperFoldable<I>
+ Relate<I>
+ Flagswhere
I: Interner<Const = Self>,{
// Required methods
fn try_to_target_usize(self, interner: I) -> Option<u64>;
fn new_infer(interner: I, var: InferConst) -> Self;
fn new_var(interner: I, var: ConstVid) -> Self;
fn new_bound(
interner: I,
debruijn: DebruijnIndex,
var: <I as Interner>::BoundConst,
) -> Self;
fn new_anon_bound(
interner: I,
debruijn: DebruijnIndex,
var: BoundVar,
) -> Self;
fn new_unevaluated(interner: I, uv: UnevaluatedConst<I>) -> Self;
fn new_expr(interner: I, expr: <I as Interner>::ExprConst) -> Self;
fn new_error(interner: I, guar: <I as Interner>::ErrorGuaranteed) -> Self;
// Provided methods
fn new_error_with_message(interner: I, msg: impl ToString) -> Self { ... }
fn is_ct_var(self) -> bool { ... }
}
Required Methods§
fn try_to_target_usize(self, interner: I) -> Option<u64>
fn new_infer(interner: I, var: InferConst) -> Self
fn new_var(interner: I, var: ConstVid) -> Self
fn new_bound( interner: I, debruijn: DebruijnIndex, var: <I as Interner>::BoundConst, ) -> Self
fn new_anon_bound(interner: I, debruijn: DebruijnIndex, var: BoundVar) -> Self
fn new_unevaluated(interner: I, uv: UnevaluatedConst<I>) -> Self
fn new_expr(interner: I, expr: <I as Interner>::ExprConst) -> Self
fn new_error(interner: I, guar: <I as Interner>::ErrorGuaranteed) -> Self
Provided Methods§
fn new_error_with_message(interner: I, msg: impl ToString) -> Self
fn is_ct_var(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.