chobit_module

Macro chobit_module 

Source
macro_rules! chobit_module {
    (
        input_buffer_size = $input_buffer_size:expr;
        output_buffer_size = $output_buffer_size:expr;

        on_created($($on_created_args:tt)*) -> $user_object_type:ty {
            $($code_1:tt)*
        }

        on_received($($on_received_args:tt)*) {
            $($code_2:tt)*
        }
    ) => { ... };
}
Expand description

Defines WASM module. Defined in chobit_module.rs .

use chobitlibs::chobit_module::{ChobitModule, chobit_module};

struct MyObject {
    pub value: i32
}

chobit_module! {
    input_buffer_size = 16 * 1024;  // Initial input buffer size.
    output_buffer_size = 16 * 1024;  // Initial output buffer size.

    // This is called when this module has created.
    on_created() -> MyObject {
        MyObject {
            value: 100
        }
    }

    // This is called when received data from other module.
    on_received(module: &mut ChobitModule<MyObject>) {
        module.send(
            123,
            format!("Hello {}", module.user_object().value).as_bytes()
        );
    }
}