Function wasmer_c_api::wasm_c_api::unstable::module::wasmer_module_name

source ·
#[no_mangle]
pub unsafe extern "C" fn wasmer_module_name(
    module: &wasm_module_t,
    out: &mut wasm_name_t,
)
Expand description

Unstable non-standard Wasmer-specific API to get the module’s name, otherwise out->size is set to 0 and out->data to NULL.

§Example

int main() {
    // Create the engine and the store.
    wasm_engine_t* engine = wasm_engine_new();
    wasm_store_t* store = wasm_store_new(engine);

    // Create a WebAssembly module from a WAT definition.
    wasm_byte_vec_t wat;
    wasmer_byte_vec_new_from_string(&wat, "(module $moduleName)");
    //                                             ^~~~~~~~~~~ that's the name!
    wasm_byte_vec_t wasm;
    wat2wasm(&wat, &wasm);

    // Create the module.
    wasm_module_t* module = wasm_module_new(store, &wasm);

    // Read the module's name.
    wasm_name_t name;
    wasmer_module_name(module, &name);

    // It works!
    wasmer_assert_name(&name, "moduleName");

    // Free everything.
    wasm_byte_vec_delete(&name);
    wasm_module_delete(module);
    wasm_byte_vec_delete(&wasm);
    wasm_byte_vec_delete(&wat);
    wasm_store_delete(store);
    wasm_engine_delete(engine);

    return 0;
}