pub mod types;
pub use types::*;
use std::collections::{BTreeMap, BTreeSet};
use crate::vm::types::Pr47Value;
use crate::bind::funcs::Pr47RustFunc;
use crate::util::mstring::StringHandle;
pub struct Pr47Env<'a> {
static_stack: Vec<Vec<Pr47Value>>,
dynamic_stack: Vec<Vec<Pr47Ptr<'a>>>,
heap: Vec<Pr47Ptr<'a>>,
known_rust_types: BTreeSet<StringHandle>,
ffi_funcs: BTreeMap<StringHandle, Box<dyn Pr47RustFunc>>
}
impl<'a> Pr47Env<'a> {
pub fn new() -> Self {
Self {
static_stack: Vec::new(),
dynamic_stack: Vec::new(),
heap: Vec::new(),
known_rust_types: BTreeSet::new(),
ffi_funcs: BTreeMap::new()
}
}
}