pub enum Materialized {
Show 70 variants
Lit(i64),
FloatLit(u64),
FloatOp {
op: BinOp,
lhs: Box<Materialized>,
rhs: Box<Materialized>,
},
IntToFloat(Box<Materialized>),
FloatToInt(Box<Materialized>),
DecimalLit(i64),
DecimalOp {
op: BinOp,
lhs: Box<Materialized>,
rhs: Box<Materialized>,
},
IntToDecimal(Box<Materialized>),
DecimalToInt(Box<Materialized>),
DecimalRaw(Box<Materialized>),
Bool(bool),
Not(Box<Materialized>),
Str(String),
StrLen(Box<Materialized>),
StrLower(Box<Materialized>),
StrFromCode(Box<Materialized>),
StrConcat(Box<Materialized>, Box<Materialized>),
StrSlice {
s: Box<Materialized>,
start: Box<Materialized>,
len: Box<Materialized>,
},
StrEq(Box<Materialized>, Box<Materialized>),
StrContains {
haystack: Box<Materialized>,
needle: Box<Materialized>,
},
StrStartsWith {
s: Box<Materialized>,
prefix: Box<Materialized>,
},
StrIndexOf {
haystack: Box<Materialized>,
needle: Box<Materialized>,
},
NumberToStr(Box<Materialized>),
StrToNumber(Box<Materialized>),
StrToNumberOpt(Box<Materialized>),
Now,
List(Vec<Materialized>),
ListEmpty {
elem: Type,
},
ListCons {
head: Box<Materialized>,
tail: Box<Materialized>,
},
OptionSome(Box<Materialized>),
OptionNone {
elem: Type,
},
OptionElse {
opt: Box<Materialized>,
default: Box<Materialized>,
},
OptionMatch {
opt: Box<Materialized>,
some_bind: String,
some_body: Box<Materialized>,
none_body: Box<Materialized>,
},
ListTryGet {
list: Box<Materialized>,
index: Box<Materialized>,
},
ListLen(Box<Materialized>),
ListGet {
list: Box<Materialized>,
index: Box<Materialized>,
},
Map(Vec<(Materialized, Materialized)>),
MapGet {
map: Box<Materialized>,
key: Box<Materialized>,
},
MapTryGet {
map: Box<Materialized>,
key: Box<Materialized>,
},
MapLen(Box<Materialized>),
Log(Box<Materialized>),
Publish(Box<Materialized>),
SetHeader {
name: Box<Materialized>,
value: Box<Materialized>,
},
Rand,
MutNew(Box<Materialized>),
MutGet(Box<Materialized>),
MutSet {
cell: Box<Materialized>,
value: Box<Materialized>,
},
DiskWrite {
path: Box<Materialized>,
content: Box<Materialized>,
},
DiskRead(Box<Materialized>),
NetGet(Box<Materialized>),
DbQuery {
sql: Box<Materialized>,
params: Box<Materialized>,
},
Ref(String),
Call {
func: String,
args: Vec<Materialized>,
},
FuncRef(String),
CallValue {
callee: Box<Materialized>,
args: Vec<Materialized>,
},
Lambda {
params: Vec<Param>,
body: Box<Materialized>,
},
Hole {
expects: String,
},
Step {
binding: String,
value: Box<Materialized>,
},
BinOp {
op: BinOp,
lhs: Box<Materialized>,
rhs: Box<Materialized>,
},
If {
cond: Box<Materialized>,
then_branch: Box<Materialized>,
else_branch: Box<Materialized>,
},
Fail(String),
Handle {
body: Box<Materialized>,
handlers: Vec<(String, Materialized)>,
},
Function {
name: String,
type_params: Vec<String>,
params: Vec<Param>,
produces: Produces,
requires: BTreeSet<Effect>,
on_failure: Vec<String>,
body: Vec<Materialized>,
result: Box<Materialized>,
},
Module {
name: String,
types: Vec<Materialized>,
functions: Vec<Materialized>,
},
RecordDef {
name: String,
fields: Vec<(String, Type)>,
},
Record {
type_name: String,
fields: Vec<(String, Materialized)>,
},
Field {
base: Box<Materialized>,
type_name: String,
field: String,
},
VariantDef {
name: String,
cases: Vec<(String, Vec<(String, Type)>)>,
},
Variant {
type_name: String,
case: String,
fields: Vec<(String, Materialized)>,
},
Match {
scrutinee: Box<Materialized>,
type_name: String,
arms: Vec<(String, Vec<String>, Materialized)>,
},
}Expand description
A subtree loaded back out of the store, children inlined, for inspection and equality checks.
Variants§
Lit(i64)
FloatLit(u64)
FloatOp
IntToFloat(Box<Materialized>)
FloatToInt(Box<Materialized>)
DecimalLit(i64)
DecimalOp
IntToDecimal(Box<Materialized>)
DecimalToInt(Box<Materialized>)
DecimalRaw(Box<Materialized>)
Bool(bool)
Not(Box<Materialized>)
Str(String)
StrLen(Box<Materialized>)
StrLower(Box<Materialized>)
StrFromCode(Box<Materialized>)
StrConcat(Box<Materialized>, Box<Materialized>)
StrSlice
StrEq(Box<Materialized>, Box<Materialized>)
StrContains
StrStartsWith
StrIndexOf
NumberToStr(Box<Materialized>)
StrToNumber(Box<Materialized>)
StrToNumberOpt(Box<Materialized>)
Now
List(Vec<Materialized>)
ListEmpty
ListCons
OptionSome(Box<Materialized>)
OptionNone
OptionElse
OptionMatch
ListTryGet
ListLen(Box<Materialized>)
ListGet
Map(Vec<(Materialized, Materialized)>)
MapGet
MapTryGet
MapLen(Box<Materialized>)
Log(Box<Materialized>)
Publish(Box<Materialized>)
SetHeader
Rand
MutNew(Box<Materialized>)
MutGet(Box<Materialized>)
MutSet
DiskWrite
DiskRead(Box<Materialized>)
NetGet(Box<Materialized>)
DbQuery
Ref(String)
Call
FuncRef(String)
CallValue
Lambda
Hole
Step
BinOp
If
Fail(String)
Handle
Function
Module
RecordDef
Record
Field
VariantDef
Variant
Match
Trait Implementations§
Source§impl Clone for Materialized
impl Clone for Materialized
Source§fn clone(&self) -> Materialized
fn clone(&self) -> Materialized
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for Materialized
impl Debug for Materialized
Source§impl PartialEq for Materialized
impl PartialEq for Materialized
Source§fn eq(&self, other: &Materialized) -> bool
fn eq(&self, other: &Materialized) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Eq for Materialized
impl StructuralPartialEq for Materialized
Auto Trait Implementations§
impl Freeze for Materialized
impl RefUnwindSafe for Materialized
impl Send for Materialized
impl Sync for Materialized
impl Unpin for Materialized
impl UnsafeUnpin for Materialized
impl UnwindSafe for Materialized
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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>
Converts
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>
Converts
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