pub trait Const<I: Interner<Const = Self>>:
Copy
+ Debug
+ Hash
+ Eq
+ Into<I::GenericArg>
+ Into<I::Term>
+ IntoKind<Kind = ConstKind<I>>
+ TypeSuperVisitable<I>
+ TypeSuperFoldable<I>
+ Relate<I>
+ Flags {
// 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::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::ExprConst) -> Self;
fn new_error(interner: I, guar: I::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::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::ExprConst) -> Self
fn new_error(interner: I, guar: I::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.