pub enum RawValue {
RawSymbol(RawSymbolName),
TypedSymbol {
name: RawSymbolName,
kind: String,
},
Bareword(String),
String(String),
Integer(i64),
Float(f64),
Boolean(bool),
Nil,
List(Vec<RawValue>),
Timestamp(ClockTime),
TimestampRaw(String),
}Expand description
A raw value in a memory slot — pre-binding analogue of crate::Value.
Differs from Value in two ways:
RawSymbolcarries aRawSymbolNamerather than a resolvedSymbolId.- Extra variants that only exist in surface syntax:
TypedSymbol(the@name:Kindannotation),Bareword(predicate or string literal depending on slot),List(parenthesized lists likeparticipants/derived_from), andNil.
Variants§
RawSymbol(RawSymbolName)
@name.
TypedSymbol
@name:Kind.
Fields
name: RawSymbolNameSymbol name without the @.
Bareword(String)
A bareword. In predicate slots resolves to a Predicate-kind
symbol; elsewhere resolves to a string literal (Value::String).
String(String)
A quoted UTF-8 string literal.
Integer(i64)
A signed integer.
Float(f64)
An IEEE 754 binary64 float.
Boolean(bool)
A boolean.
Nil
nil — represents Option::None in nullable positions.
List(Vec<RawValue>)
A parenthesized (...) list — used for participants,
derived_from, and similar multi-value slots. Each element is
itself a RawValue.
Timestamp(ClockTime)
A timestamp token — stored as milliseconds. Pre-validated by the lexer to look like an ISO-8601 timestamp.
TimestampRaw(String)
A raw timestamp text that the lexer could not yet convert to a
ClockTime (e.g. because the parser is collecting the value
for a slot where the binder does the conversion). Escape hatch
used by the bind stage; the parser itself always produces
Timestamp(ClockTime) where possible.