Validated VM creator

This commit is contained in:
Erin 2023-06-06 23:08:26 +02:00 committed by ondra05
parent bb3a472eeb
commit 8d6e7af9d8
2 changed files with 8 additions and 4 deletions

View file

@ -1,3 +1,5 @@
use crate::validate;
mod value; mod value;
use { use {
@ -43,6 +45,11 @@ impl<'a> Vm<'a> {
} }
} }
pub fn new_validated(program: &'a [u8]) -> Result<Self, validate::Error> {
validate::validate(program)?;
Ok(unsafe { Self::new_unchecked(program) })
}
pub fn run(&mut self) { pub fn run(&mut self) {
use crate::bytecode::opcode::*; use crate::bytecode::opcode::*;
loop { loop {

View file

@ -1,7 +1,4 @@
use core::{ use core::fmt::Debug;
fmt::Debug,
ops::{Index, IndexMut},
};
/// # Safety /// # Safety
/// The macro invoker shall make sure that byte reinterpret-cast /// The macro invoker shall make sure that byte reinterpret-cast