From 2710a43bb23fc608afdee892960a2ceed5303b0d Mon Sep 17 00:00:00 2001 From: Sofia Date: Fri, 20 Mar 2026 18:16:07 +0200 Subject: [PATCH] Move value to vm/value --- examples/test.rs | 7 +++---- src/ast.rs | 2 +- src/compile.rs | 6 ++++-- src/lib.rs | 3 +-- src/{vm.rs => vm/mod.rs} | 4 +++- src/{ => vm}/value.rs | 0 6 files changed, 12 insertions(+), 10 deletions(-) rename src/{vm.rs => vm/mod.rs} (99%) rename src/{ => vm}/value.rs (100%) diff --git a/examples/test.rs b/examples/test.rs index d760ffc..c717331 100644 --- a/examples/test.rs +++ b/examples/test.rs @@ -1,14 +1,13 @@ use ferrite_lua::{ compile, - value::{self, RustFunction}, - vm::{self, RuntimeError, VirtualMachine}, + vm::{RuntimeError, VirtualMachine, value}, }; static TEST: &str = include_str!("../examples/test.lua"); #[derive(Debug, PartialEq, Eq)] pub struct Max; -impl RustFunction for Max { +impl value::RustFunction for Max { fn execute(&self, parameters: Vec) -> Result, RuntimeError> { let lhs = parameters.get(0).cloned().unwrap_or(value::Value::Nil); let rhs = parameters.get(1).cloned().unwrap_or(value::Value::Nil); @@ -24,7 +23,7 @@ impl RustFunction for Max { } #[derive(Debug, PartialEq, Eq)] pub struct Print; -impl RustFunction for Print { +impl value::RustFunction for Print { fn execute(&self, parameters: Vec) -> Result, RuntimeError> { println!("{:?}", parameters); Ok(Vec::new()) diff --git a/src/ast.rs b/src/ast.rs index d2f56f8..c0e36cd 100644 --- a/src/ast.rs +++ b/src/ast.rs @@ -5,7 +5,7 @@ use crate::{ Parse, TokenRange, TokenStream, TokenStreamError, lexer::{Keyword, Position, Token}, }, - value::{LuaFloat, LuaInteger}, + vm::value::{LuaFloat, LuaInteger}, }; #[derive(Debug, Clone)] diff --git a/src/compile.rs b/src/compile.rs index 8f794a4..4c02be2 100644 --- a/src/compile.rs +++ b/src/compile.rs @@ -8,8 +8,10 @@ use crate::{ AccessModifier, BinaryOperator, Block, Expression, ExpressionList, IdentOrEllipsis, Literal, Node, Statement, UnaryOperator, }, - value::{LuaBool, LuaInteger}, - vm::{Constant, Instruction, Prototype}, + vm::{ + Constant, Instruction, Prototype, + value::{LuaBool, LuaInteger}, + }, }; #[derive(Clone, Debug)] diff --git a/src/lib.rs b/src/lib.rs index 981665c..75f682b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,6 +1,6 @@ //! Usage example: //! ```rust -//! use ferrite_lua::{compile, vm, value}; +//! use ferrite_lua::{compile, vm::{self, value}}; //! //! #[derive(Debug, PartialEq, Eq)] //! pub struct Print; @@ -42,7 +42,6 @@ use crate::{ mod ast; mod compile; mod token_stream; -pub mod value; pub mod vm; #[derive(Error, Debug)] diff --git a/src/vm.rs b/src/vm/mod.rs similarity index 99% rename from src/vm.rs rename to src/vm/mod.rs index 05d5f74..af7a0e6 100644 --- a/src/vm.rs +++ b/src/vm/mod.rs @@ -5,9 +5,11 @@ use std::{cell::RefCell, collections::HashMap, fmt::Debug, hash::Hash, rc::Rc}; use crate::{ CompilationUnit, ast::{BinaryOperator, UnaryOperator}, - value::{IndexableValue, LuaBool, LuaInteger, VMFloat, Value}, + vm::value::{IndexableValue, LuaBool, LuaInteger, VMFloat, Value}, }; +pub mod value; + #[derive(Clone, Hash, PartialEq, Eq)] pub enum Constant { String(String), diff --git a/src/value.rs b/src/vm/value.rs similarity index 100% rename from src/value.rs rename to src/vm/value.rs