diff options
Diffstat (limited to 'crates/sloth_vm/src/value.rs')
| -rw-r--r-- | crates/sloth_vm/src/value.rs | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/crates/sloth_vm/src/value.rs b/crates/sloth_vm/src/value.rs deleted file mode 100644 index 4450b5a..0000000 --- a/crates/sloth_vm/src/value.rs +++ /dev/null @@ -1,53 +0,0 @@ -use crate::native::NativeFunction; -use crate::Chunk; - -#[derive(Debug, Clone, Copy, PartialEq)] -pub enum Primitive { - Integer(i128), - Float(f64), - Bool(bool), - /// Pointer to an object living on heap - Object(u32), - Empty, -} - -pub struct Object { - /// If the object has been marked by the VM or not - pub(crate) marked: bool, - pub(crate) typ: ObjectType, -} - -impl Object { - pub fn new(typ: ObjectType) -> Self { - Self { marked: false, typ } - } -} - -pub enum ObjectType { - Box(Primitive), - String(String), - List(Vec<Primitive>), - - Function(Function), - NativeFunction(NativeFunction), - - Free { next: usize }, -} - -pub struct Function { - pub name: Option<String>, - pub chunk: Chunk, - pub arity: u8, - pub returns_value: bool, -} - -impl Function { - pub fn root(chunk: Chunk) -> Self { - Self { - name: None, - chunk, - arity: 0, - returns_value: false, - } - } -} |
