# [−] [src] Struct wasmi::Module

    pub struct Module { /* fields omitted */ }

Deserialized module prepared for instantiation.

## Methods

### `impl Module` [src]

#### `pub fn from_parity_wasm_module(module: Module) -> Result<Module, Error>` [src]

Create `Module` from `parity_wasm::elements::Module`.

This function will load, validate and prepare a `parity_wasm`'s `Module`.

# Errors

Returns `Err` if provided `Module` is not valid.

# Examples

    extern crate parity_wasm;
    extern crate wasmi;

    use parity_wasm::builder;
    use parity_wasm::elements;

    fn main() {
        let parity_module =
            builder::module()
                .function()
                    .signature().with_param(elements::ValueType::I32).build()
                    .body().build()
                .build()
            .build();

        let module = wasmi::Module::from_parity_wasm_module(parity_module)
            .expect("parity-wasm builder generated invalid module!");

        // Instantiate `module`, etc...
    }

#### `pub fn deny_floating_point(&self) -> Result<(), Error>` [src]

Fail if the module contains any floating-point operations

# Errors

Returns `Err` if provided `Module` is not valid.

# Examples

    let wasm_binary: Vec<u8> =
        wabt::wat2wasm(
            r#"
            (module
             (func $add (param $lhs i32) (param $rhs i32) (result i32)
                   get_local $lhs
                   get_local $rhs
                   i32.add))
            "#,
        )
        .expect("failed to parse wat");

    // Load wasm binary and prepare it for instantiation.
    let module = wasmi::Module::from_buffer(&wasm_binary).expect("Parsing failed");
    assert!(module.deny_floating_point().is_ok());

    let wasm_binary: Vec<u8> =
        wabt::wat2wasm(
            r#"
            (module
             (func $add (param $lhs f32) (param $rhs f32) (result f32)
                   get_local $lhs
                   get_local $rhs
                   f32.add))
            "#,
        )
        .expect("failed to parse wat");

    let module = wasmi::Module::from_buffer(&wasm_binary).expect("Parsing failed");
    assert!(module.deny_floating_point().is_err());

    let wasm_binary: Vec<u8> =
        wabt::wat2wasm(
            r#"
            (module
             (func $add (param $lhs f32) (param $rhs f32) (result f32)
                   get_local $lhs))
            "#,
        )
        .expect("failed to parse wat");

    let module = wasmi::Module::from_buffer(&wasm_binary).expect("Parsing failed");
    assert!(module.deny_floating_point().is_err());

#### `pub fn from_buffer<B: AsRef<[u8]>>(buffer: B) -> Result<Module, Error>` [src]

Create `Module` from a given buffer.

This function will deserialize wasm module from a given module, validate and prepare it for instantiation.

# Errors

Returns `Err` if wasm binary in provided `buffer` is not valid wasm binary.

# Examples

    extern crate wasmi;

    fn main() {
        let module =
            wasmi::Module::from_buffer(
                // Minimal module:
                //   \0asm - magic
                //    0x01 - version (in little-endian)
                &[0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00]
            ).expect("Failed to load minimal module");

        // Instantiate `module`, etc...
    }

## Auto Trait Implementations

### `impl Send for Module`

### `impl Sync for Module`

### `impl Unpin for Module`

### `impl UnwindSafe for Module`

### `impl RefUnwindSafe for Module`

## Blanket Implementations

### `impl<T, U> Into<U> for T where
U: From<T>,` [src]

#### `fn into(self) -> U` [src]

Performs the conversion.

### `impl<T> From<T> for T` [src]

#### `fn from(t: T) -> T` [src]

Performs the conversion.

### `impl<T, U> TryFrom<U> for T where
U: Into<T>,` [src]

#### `type Error = Infallible`

The type returned in the event of a conversion error.

#### `fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>` [src]

Performs the conversion.

### `impl<T, U> TryInto<U> for T where
U: TryFrom<T>,` [src]

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

The type returned in the event of a conversion error.

#### `fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>` [src]

Performs the conversion.

### `impl<T> Borrow<T> for T where
T: ?Sized,` [src]

#### `fn borrow(&self) -> &T` [src]

Immutably borrows from an owned value. Read more

### `impl<T> BorrowMut<T> for T where
T: ?Sized,` [src]

#### `fn borrow_mut(&mut self) -> &mut T` [src]

Mutably borrows from an owned value. Read more

### `impl<T> Any for T where
T: 'static + ?Sized,` [src]

#### `fn type_id(&self) -> TypeId` [src]

Gets the `TypeId` of `self`. Read more

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g., `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g., `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g., `str,u8` or `String,struct:Vec,test`)