pub enum Value {
Unit,
Bool(bool),
Int(i64),
Float(f64),
String(String),
Map(BTreeMap<String, Value>),
List(Vec<Value>),
Symbol(String),
}Expand description
A runtime value flowing through perform / resume / abort sites.
Symbol carries an unresolved identifier (e.g. a step output name
like "Extract.output"); the runtime treats it as opaque since
resolving it would require the surrounding flow’s environment.
Production runs supply concrete values via the IR-loading layer or
via EffectRuntime::bind_global.
Sentinel::Unit and Sentinel::Never are the well-known unit /
bottom sentinels. Never should never appear at runtime in a
well-typed program; its presence indicates the typechecker missed
a resume on a Never-returning operation (a compiler bug).
Variants§
Unit
Bool(bool)
Int(i64)
Float(f64)
String(String)
Map(BTreeMap<String, Value>)
List(Vec<Value>)
Symbol(String)
Symbolic reference (an identifier string in the IR — e.g.
token, state.last). The runtime treats it opaquely; tests
may resolve it via the EffectRuntime::bind_global table.
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Value
impl<'de> Deserialize<'de> for Value
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 Value
Auto Trait Implementations§
impl Freeze for Value
impl RefUnwindSafe for Value
impl Send for Value
impl Sync for Value
impl Unpin for Value
impl UnsafeUnpin for Value
impl UnwindSafe for Value
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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