WebAssembly - Trabalhando com Rust

Para obter o código de compilação RUST, usaremos a ferramenta WebAssembly.studio.

Vá para WebAssembly.studio que está disponível em Vá parahttps://webassembly.studio/ e ele irá exibir a tela conforme mostrado abaixo -

Clique em Empty Rust Project. Uma vez feito isso, você obterá três arquivos em src / pasta -

Abra o arquivo main.rs e altere o código de sua escolha.

Estou adicionando a seguinte função que adicionará dois números dados -

fn add_ints(lhs: i32, rhs: i32) -> i32 {
   lhs+rhs
}

O código disponível em main.rs é o seguinte -

#[no_mangle]
pub extern "C" fn add_one(x: i32) -> i32 {
   x + 1
}

Substitua o fn add_one pelo seu como mostrado abaixo -

#[no_mangle]
pub extern "C" fn add_ints(lhs: i32, rhs: i32) -> i32 {
   lhs+rhs
}

Em main.js, altere o nome da função de add_one para add_ints

fetch('../out/main.wasm').then(
   response =>
   response.arrayBuffer()
).then(bytes => WebAssembly.instantiate(bytes)).then(results => {
   instance = results.instance;
   document.getElementById("container").textContent = instance.exports.add_one(41);
}).catch(console.error);

Substitua instance.exports.add_one por instance.exports.add_ints (100,100)

fetch('../out/main.wasm').then(
   response =>
   response.arrayBuffer()
).then(bytes => WebAssembly.instantiate(bytes)).then(results => {
   instance = results.instance;
   document.getElementById("container").textContent = instance.exports.add_ints(100,100)
}).catch(console.error);

Clique no botão construir disponível na IU do webassembly.studio para construir o código.

Assim que a construção estiver concluída, clique no botão Executar disponível na IU para ver o resultado -

Obtemos a saída como 200, conforme passamos instance.exports.add_ints (100,100).

Da mesma forma, você pode escrever um programa diferente para ferrugem e obtê-lo compilado em webassembly.studio.