usecrate::{Encode, Section, SectionId, encode_section}; use alloc::vec::Vec;
/// An encoder for the function section of WebAssembly modules. /// /// # Example /// /// ``` /// use wasm_encoder::{Module, FunctionSection, ValType}; /// /// let mut functions = FunctionSection::new(); /// let type_index = 0; /// functions.function(type_index); /// /// let mut module = Module::new(); /// module.section(&functions); /// /// // Note: this will generate an invalid module because we didn't generate a /// // code section containing the function body. See the documentation for /// // `CodeSection` for details. /// /// let bytes = module.finish(); /// ``` #[derive(Clone, Debug, Default)] pubstruct FunctionSection {
bytes: Vec<u8>,
num_added: u32,
}
impl FunctionSection { /// Construct a new module function section encoder. pubfn new() -> Self { Self::default()
}
/// The number of functions in the section. pubfn len(&self) -> u32 { self.num_added
}
/// Determines if the section is empty. pubfn is_empty(&self) -> bool { self.num_added == 0
}
/// Define a function in a module's function section. pubfn function(&mutself, type_index: u32) -> &mutSelf {
type_index.encode(&mutself.bytes); self.num_added += 1; self
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.