wasmparser/readers/component/
start.rs1use crate::limits::{MAX_WASM_FUNCTION_RETURNS, MAX_WASM_START_ARGS};
2use crate::prelude::*;
3use crate::{BinaryReader, FromReader, Result};
4
5#[derive(Debug, Clone)]
7pub struct ComponentStartFunction {
8 pub func_index: u32,
10 pub arguments: Box<[u32]>,
14 pub results: u32,
16}
17
18impl<'a> FromReader<'a> for ComponentStartFunction {
19 fn from_reader(reader: &mut BinaryReader<'a>) -> Result<Self> {
20 let func_index = reader.read_var_u32()?;
21 let arguments = reader
22 .read_iter(MAX_WASM_START_ARGS, "start function arguments")?
23 .collect::<Result<_>>()?;
24 let results = reader.read_size(MAX_WASM_FUNCTION_RETURNS, "start function results")? as u32;
25 Ok(ComponentStartFunction {
26 func_index,
27 arguments,
28 results,
29 })
30 }
31}