pub struct Module<'a> {
pub memory_initializers: &'a [u8],
pub code: &'a [u8],
}Fields§
§memory_initializers: &'a [u8]§code: &'a [u8]Implementations§
Source§impl<'a> Module<'a>
impl<'a> Module<'a>
Sourcepub fn from_raw(s: &'a [u8]) -> ExecuteResult<Module<'a>>
pub fn from_raw(s: &'a [u8]) -> ExecuteResult<Module<'a>>
Examples found in repository?
examples/he_eval.rs (line 104)
95fn main() {
96 let mut f = File::open(env::args()
97 .nth(1)
98 .expect("Path expected")
99 ).expect("Unable to open code file");
100
101 let mut code: Vec<u8> = Vec::new();
102 f.read_to_end(&mut code).unwrap();
103
104 let module = hexagon_e::module::Module::from_raw(&code).unwrap();
105
106 let mut rh = ResourceHolder {
107 mem: vec! [ 0; 1048576 ],
108 slots: vec! [ 0; 65536 ],
109 stack: vec! [ Cell::new(0); 1024 ],
110 call_stack: vec! [ Cell::new(0); 1024 ]
111 };
112 let env = ExecutionEnv::new(&mut rh);
113
114 let mut vm = hexagon_e::vm::VirtualMachine::new(&module, env);
115 vm.run_memory_initializers().unwrap();
116 vm.run().unwrap();
117}Trait Implementations§
impl<'a> Copy for Module<'a>
Auto Trait Implementations§
impl<'a> Freeze for Module<'a>
impl<'a> RefUnwindSafe for Module<'a>
impl<'a> Send for Module<'a>
impl<'a> Sync for Module<'a>
impl<'a> Unpin for Module<'a>
impl<'a> UnwindSafe for Module<'a>
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