pub enum Value {
Show 13 variants
Int(i64),
Float(f64),
Bool(bool),
Str(String),
Char(char),
List(Vec<Value>),
Con(String, Vec<Value>),
Closure {
params: Vec<Pat>,
body: Expr,
env: Env,
},
Func {
name: String,
equations: Vec<Equation>,
env: Env,
},
Builtin(String, usize),
PartialBuiltin(String, usize, Vec<Value>),
Record(Vec<(String, Value)>),
Unit,
}Expand description
Runtime value
Variants§
Int(i64)
Float(f64)
Bool(bool)
Str(String)
Char(char)
List(Vec<Value>)
List of values
Con(String, Vec<Value>)
Constructor with tag and fields: Just 42, None
Closure
Closure: captured env + params + body
Func
Multi-equation function (pattern matching across equations)
Builtin(String, usize)
Built-in function
PartialBuiltin(String, usize, Vec<Value>)
Partially applied builtin
Record(Vec<(String, Value)>)
Record value: {name = “Alice”, age = 30}
Unit
Unit (void)
Trait Implementations§
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
Mutably borrows from an owned value. Read more