2019-01-10 22:59:57 -05:00
|
|
|
use crate::{
|
|
|
|
instance::FuncRef,
|
|
|
|
types::{FuncSig, GlobalDesc, Memory, Table},
|
|
|
|
vm,
|
|
|
|
};
|
|
|
|
|
2019-01-12 16:24:17 -05:00
|
|
|
#[derive(Debug, Copy, Clone)]
|
2019-01-10 22:59:57 -05:00
|
|
|
pub enum Context {
|
|
|
|
External(*mut vm::Ctx),
|
|
|
|
Internal,
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Debug, Clone)]
|
|
|
|
pub enum Export {
|
|
|
|
Function {
|
|
|
|
func: FuncRef,
|
|
|
|
ctx: Context,
|
|
|
|
signature: FuncSig,
|
|
|
|
},
|
|
|
|
Memory {
|
|
|
|
local: *mut vm::LocalMemory,
|
|
|
|
ctx: Context,
|
|
|
|
memory: Memory,
|
|
|
|
},
|
|
|
|
Table {
|
|
|
|
local: *mut vm::LocalTable,
|
|
|
|
ctx: Context,
|
|
|
|
table: Table,
|
|
|
|
},
|
|
|
|
Global {
|
|
|
|
local: *mut vm::LocalGlobal,
|
|
|
|
global: GlobalDesc,
|
|
|
|
},
|
|
|
|
}
|