1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
use crate::metadata::{funcs, result::Result, StoreData};
use wasmtime::{
AsContext, AsContextMut, Caller, Extern, Func, Linker, Memory, MemoryType, Store, Trap,
};
pub fn apply(store: &mut Store<StoreData>, linker: &mut Linker<StoreData>) -> Result<()> {
let memory = Memory::new(store.as_context_mut(), MemoryType::new(256, None))?;
linker.define("env", "memory", Extern::Memory(memory))?;
linker.define("env", "alloc", funcs::alloc(store.as_context_mut(), memory))?;
linker.define("env", "free", funcs::free(store.as_context_mut()))?;
linker.define(
"env",
"gr_debug",
funcs::gr_debug(store.as_context_mut(), memory),
)?;
linker.define(
"env",
"gr_read",
funcs::gr_read(store.as_context_mut(), memory),
)?;
linker.define("env", "gr_size", funcs::gr_size(store.as_context_mut()))?;
Ok(())
}