1 use crate::vmcontext::{VMFunctionImport, VMGlobalImport, VMMemoryImport, VMTableImport};
2 use wasmtime_environ::entity::{BoxedSlice, PrimaryMap};
3 use wasmtime_environ::wasm::{FuncIndex, GlobalIndex, MemoryIndex, TableIndex};
4 
5 /// Resolved import pointers.
6 #[derive(Clone)]
7 pub struct Imports {
8     /// Resolved addresses for imported functions.
9     pub functions: BoxedSlice<FuncIndex, VMFunctionImport>,
10 
11     /// Resolved addresses for imported tables.
12     pub tables: BoxedSlice<TableIndex, VMTableImport>,
13 
14     /// Resolved addresses for imported memories.
15     pub memories: BoxedSlice<MemoryIndex, VMMemoryImport>,
16 
17     /// Resolved addresses for imported globals.
18     pub globals: BoxedSlice<GlobalIndex, VMGlobalImport>,
19 }
20 
21 impl Imports {
22     /// Construct a new `Imports` instance.
new( function_imports: PrimaryMap<FuncIndex, VMFunctionImport>, table_imports: PrimaryMap<TableIndex, VMTableImport>, memory_imports: PrimaryMap<MemoryIndex, VMMemoryImport>, global_imports: PrimaryMap<GlobalIndex, VMGlobalImport>, ) -> Self23     pub fn new(
24         function_imports: PrimaryMap<FuncIndex, VMFunctionImport>,
25         table_imports: PrimaryMap<TableIndex, VMTableImport>,
26         memory_imports: PrimaryMap<MemoryIndex, VMMemoryImport>,
27         global_imports: PrimaryMap<GlobalIndex, VMGlobalImport>,
28     ) -> Self {
29         Self {
30             functions: function_imports.into_boxed_slice(),
31             tables: table_imports.into_boxed_slice(),
32             memories: memory_imports.into_boxed_slice(),
33             globals: global_imports.into_boxed_slice(),
34         }
35     }
36 
37     /// Construct a new `Imports` instance with no imports.
none() -> Self38     pub fn none() -> Self {
39         Self {
40             functions: PrimaryMap::new().into_boxed_slice(),
41             tables: PrimaryMap::new().into_boxed_slice(),
42             memories: PrimaryMap::new().into_boxed_slice(),
43             globals: PrimaryMap::new().into_boxed_slice(),
44         }
45     }
46 }
47