main/
main.rs

1use {
2    rwasm,
3    std::time::Duration,
4};
5
6#[no_mangle]
7fn handle_data_upload_example(length: *const u8) {
8    let length = length as usize;
9
10    rwasm::log(format!("Received byte array from JS with {} elements:", length).as_str());
11    for i in 0..length {
12        rwasm::log(format!("buffer[{}]: {}", i, rwasm::get_buffer(0)[i]).as_str());
13    }
14}
15
16#[no_mangle]
17fn multiply(x: f32, y: f32) -> f32 {
18    x * y
19}
20
21fn make_string_uppercase_from_js(string: &str) {
22    let string = rwasm::request_string(
23        "request_data_example",
24        string.as_bytes(),
25        55
26    );
27    rwasm::log(format!("Received requested string: {}", string).as_str());
28}
29
30async fn main_async() {
31    rwasm::timer::TimerFuture::new(Duration::from_millis(250)).await;
32    rwasm::log("Hello...");
33    rwasm::timer::TimerFuture::new(Duration::from_secs(1)).await;
34    rwasm::log("...world!");
35}
36
37#[rwasm::main]
38async fn main() {
39    rwasm::set_error_hook();
40    // Log something to the console.
41    rwasm::log("async fn main() says: Hi!");
42    // Make a string uppercase from JS and return it to Rust.
43    make_string_uppercase_from_js("this will be uppercase!");
44    main_async().await;
45    rwasm::log("async fn main() says: Bye!");
46}