pub enum Constant {
Show 17 variants
Int(i64),
UInt(u64),
Number(f64),
Decimal(Decimal),
String(String),
Char(char),
Bool(bool),
Null,
Unit,
Function(u16),
Timeframe(Timeframe),
Duration(Duration),
TimeReference(TimeReference),
DateTimeExpr(DateTimeExpr),
DataDateTimeRef(DataDateTimeRef),
TypeAnnotation(TypeAnnotation),
Value(KindedConstant),
}Expand description
Constants in the constant pool
Variants§
Int(i64)
UInt(u64)
Unsigned 64-bit integer (for u64 values > i64::MAX)
Number(f64)
Decimal(Decimal)
Decimal type for exact arithmetic (finance, currency)
String(String)
Char(char)
Bool(bool)
Null
Unit
Function(u16)
Timeframe(Timeframe)
Duration(Duration)
TimeReference(TimeReference)
DateTimeExpr(DateTimeExpr)
DataDateTimeRef(DataDateTimeRef)
TypeAnnotation(TypeAnnotation)
Value(KindedConstant)
Opaque runtime value (not serializable — used for host-injected constants like RowView, DataTable, TypedTable, etc.).
R8 W3 W17-typed-module-exports-followup-constant-pool
(ADR-006 §2.7.4 / §2.7.7 / Q9, 2026-05-24): the placeholder unit
shape (introduced post-strict-typing-bulldozer when the legacy
Value(ValueWord) arm was deleted) is replaced by the kinded
constant carrier KindedConstant { bits, kind }. Bits are a
type-erased typed-Arc pointer (Arc::into_raw::<T> for the
matching T) or an inline scalar; kind is the producer-side
stamp identifying the carrier (§2.7.5). Refcount discipline is
preserved by KindedConstant’s Clone (clone_with_kind) and
Drop (drop_with_kind) impls — every op_push_const of this
variant pushes a retained share via clone_with_kind. The
constant carries its kind directly per §2.7.7/Q9; the dispatch
shape mirrors the existing Constant::Decimal arm (§Forbidden
Patterns preserved — no carrier reintroduction).
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Constant
impl<'de> Deserialize<'de> for Constant
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl StructuralPartialEq for Constant
Auto Trait Implementations§
impl Freeze for Constant
impl RefUnwindSafe for Constant
impl Send for Constant
impl Sync for Constant
impl Unpin for Constant
impl UnsafeUnpin for Constant
impl UnwindSafe for Constant
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more