pub struct WasiProgram {Show 16 fields
pub program_type: WasiProgramType,
pub name: Option<String>,
pub function_types: Vec<WasiFunctionType>,
pub functions: Vec<WasiFunction>,
pub exports: Vec<WasiExport>,
pub imports: Vec<WasiImport>,
pub memories: Vec<WasiMemory>,
pub tables: Vec<WasiTable>,
pub globals: Vec<WasiGlobal>,
pub custom_sections: Vec<WasiCustomSection>,
pub start_function: Option<u32>,
pub component_items: Vec<WasiComponentItem>,
pub core_modules: Vec<WasiCoreModule>,
pub instances: Vec<WasiInstance>,
pub aliases: Vec<WasiAlias>,
pub symbol_table: HashMap<String, WasiSymbol>,
}Expand description
WASI 程序的高层次表示
这个结构体可以表示一个完整的 WebAssembly Component 或者一个传统的核心模块
Fields§
§program_type: WasiProgramType程序类型:组件或核心模块
name: Option<String>程序名称(可选)
function_types: Vec<WasiFunctionType>函数类型定义
functions: Vec<WasiFunction>函数定义
exports: Vec<WasiExport>导出定义
imports: Vec<WasiImport>导入定义
memories: Vec<WasiMemory>内存定义
tables: Vec<WasiTable>表定义
globals: Vec<WasiGlobal>全局变量定义
custom_sections: Vec<WasiCustomSection>自定义段
start_function: Option<u32>起始函数索引
component_items: Vec<WasiComponentItem>组件特有的项目(仅当 program_type 为 Component 时使用)
core_modules: Vec<WasiCoreModule>核心模块列表(用于组件中的嵌套模块)
instances: Vec<WasiInstance>实例列表
aliases: Vec<WasiAlias>别名定义
symbol_table: HashMap<String, WasiSymbol>符号表,用于名称到索引的映射
Implementations§
Source§impl WasiProgram
impl WasiProgram
Sourcepub fn new(program_type: WasiProgramType) -> Self
pub fn new(program_type: WasiProgramType) -> Self
创建新的 WASI 程序
Sourcepub fn new_component() -> Self
pub fn new_component() -> Self
创建新的组件程序
Sourcepub fn new_core_module() -> Self
pub fn new_core_module() -> Self
创建新的核心模块程序
Sourcepub fn add_function_type(&mut self, func_type: WasiFunctionType) -> u32
pub fn add_function_type(&mut self, func_type: WasiFunctionType) -> u32
添加函数类型定义,返回类型索引
Sourcepub fn add_function(&mut self, function: WasiFunction) -> u32
pub fn add_function(&mut self, function: WasiFunction) -> u32
添加函数定义,返回函数索引
Sourcepub fn add_export(&mut self, export: WasiExport)
pub fn add_export(&mut self, export: WasiExport)
添加导出定义
Sourcepub fn add_import(&mut self, import: WasiImport)
pub fn add_import(&mut self, import: WasiImport)
添加导入定义
Sourcepub fn add_memory(&mut self, memory: WasiMemory) -> u32
pub fn add_memory(&mut self, memory: WasiMemory) -> u32
添加内存定义
Sourcepub fn add_global(&mut self, global: WasiGlobal) -> u32
pub fn add_global(&mut self, global: WasiGlobal) -> u32
添加全局变量定义
Sourcepub fn add_core_module(&mut self, core_module: WasiCoreModule) -> u32
pub fn add_core_module(&mut self, core_module: WasiCoreModule) -> u32
添加核心模块
Sourcepub fn add_instance(&mut self, instance: WasiInstance) -> u32
pub fn add_instance(&mut self, instance: WasiInstance) -> u32
添加实例
Sourcepub fn add_symbol(
&mut self,
name: String,
symbol_type: WasiSymbolType,
index: u32,
)
pub fn add_symbol( &mut self, name: String, symbol_type: WasiSymbolType, index: u32, )
添加符号到符号表
Sourcepub fn find_symbol(&self, name: &str) -> Option<&WasiSymbol>
pub fn find_symbol(&self, name: &str) -> Option<&WasiSymbol>
根据名称查找符号
Sourcepub fn builder(program_type: WasiProgramType) -> WasiProgramBuilder
pub fn builder(program_type: WasiProgramType) -> WasiProgramBuilder
创建 WasiProgram 的构建器
Trait Implementations§
Source§impl Clone for WasiProgram
impl Clone for WasiProgram
Source§fn clone(&self) -> WasiProgram
fn clone(&self) -> WasiProgram
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for WasiProgram
impl Debug for WasiProgram
Auto Trait Implementations§
impl Freeze for WasiProgram
impl RefUnwindSafe for WasiProgram
impl Send for WasiProgram
impl Sync for WasiProgram
impl Unpin for WasiProgram
impl UnsafeUnpin for WasiProgram
impl UnwindSafe for WasiProgram
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