marine_module_interface/it_interface/
it_module_interface.rs1use wasmer_it::IType;
18use wasmer_it::ast::FunctionArg as IFunctionArg;
19use wasmer_it::IRecordType;
20
21use serde::Serialize;
22use serde::Deserialize;
23
24use std::collections::HashMap;
25use std::sync::Arc;
26
27pub type IRecordTypes = HashMap<u64, Arc<IRecordType>>;
28
29#[derive(PartialEq, Eq, Debug, Clone, Hash, Serialize, Deserialize)]
31pub struct IFunctionSignature {
32 pub name: Arc<String>,
33 pub arguments: Arc<Vec<IFunctionArg>>,
34 pub outputs: Arc<Vec<IType>>,
35 pub adapter_function_type: u32,
36}
37
38#[derive(PartialEq, Eq, Debug, Clone, Serialize, Deserialize)]
40pub struct IModuleInterface {
41 pub export_record_types: IRecordTypes,
42 pub record_types: IRecordTypes,
43 pub function_signatures: Vec<IFunctionSignature>,
44}