Struct Module

Source
pub struct Module {
    pub header: Header,
    pub sections: Vec<Section>,
}
Expand description

A WebAssembly module.

Fields§

§header: Header§sections: Vec<Section>

Implementations§

Source§

impl Module

Source

pub fn show(&self, verbose: bool) -> Result<(), WSError>

Print the structure of a module to the standard output, mainly for debugging purposes.

Set verbose to true in order to also print details about signature data.

Source

pub fn split<P>(self, predicate: P) -> Result<Module, WSError>
where P: FnMut(&Section) -> bool,

Prepare a module for partial verification.

The predicate should return true if a section is part of a set that can be verified, and false if the section can be ignored during verification.

It is highly recommended to always include the standard sections in the signed set.

Source

pub fn detach_signature(self) -> Result<(Module, Vec<u8>), WSError>

Detach the signature from a signed module.

This function returns the module without the embedded signature, as well as the detached signature as a byte string.

Source

pub fn attach_signature( self, detached_signature: &[u8], ) -> Result<Module, WSError>

Embed a detached signature into a module. This function returns the module with embedded signature.

Source§

impl Module

Source

pub fn deserialize(reader: &mut impl Read) -> Result<Self, WSError>

Deserialize a WebAssembly module from the given reader.

Source

pub fn deserialize_from_file(file: impl AsRef<Path>) -> Result<Self, WSError>

Deserialize a WebAssembly module from the given file.

Source

pub fn serialize(&self, writer: &mut impl Write) -> Result<(), WSError>

Serialize a WebAssembly module to the given writer.

Source

pub fn serialize_to_file(&self, file: impl AsRef<Path>) -> Result<(), WSError>

Serialize a WebAssembly module to the given file.

Source

pub fn init_from_reader<T: Read>( reader: &mut T, ) -> Result<ModuleStreamReader<'_, T>, WSError>

Parse the module’s header. This function must be called before stream().

Source

pub fn iterate<T: Read>( module_stream: ModuleStreamReader<'_, T>, ) -> Result<SectionsIterator<'_, T>, WSError>

Return an iterator over the sections of a WebAssembly module.

The module is read in a streaming fashion, and doesn’t have to be fully loaded into memory.

Trait Implementations§

Source§

impl Clone for Module

Source§

fn clone(&self) -> Module

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Module

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Module

Source§

fn default() -> Module

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl Freeze for Module

§

impl RefUnwindSafe for Module

§

impl Send for Module

§

impl Sync for Module

§

impl Unpin for Module

§

impl UnwindSafe for Module

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.