wasmtime/runtime/vm/
export.rs

1use crate::runtime::vm::{SharedMemory, VMMemoryImport};
2
3/// The value of an export passed from one instance to another.
4pub enum Export {
5    /// A function export value.
6    Function(crate::Func),
7
8    /// A table export value.
9    Table(crate::Table),
10
11    /// An unshared memory export value.
12    Memory(crate::Memory),
13
14    /// A shared memory export value.
15    SharedMemory(SharedMemory, VMMemoryImport),
16
17    /// A global export value.
18    Global(crate::Global),
19
20    /// A tag export value.
21    Tag(crate::Tag),
22}
23
24pub enum ExportMemory {
25    Unshared(crate::Memory),
26    Shared(SharedMemory, VMMemoryImport),
27}
28
29impl ExportMemory {
30    pub fn unshared(self) -> Option<crate::Memory> {
31        match self {
32            ExportMemory::Unshared(m) => Some(m),
33            ExportMemory::Shared(..) => None,
34        }
35    }
36}