Gear 程序状态
程序是 Gear 组件的主要单元。程序代码存储为不可变的 Wasm 二进制文件(blob)。 每个程序都有一个固定的内存,在消息处理之间持续存在(所谓的静态区域)。
Gear 程序的最基本结构是这样的:
#![no_std]
use gstd::msg;
#[no_mangle]
pub unsafe extern "C" fn handle() {
msg::reply(b"Hello world!", 0).expect("Error in sending reply");
}
#[no_mangle]
pub unsafe extern "C" fn init() {}
可选的init()
函数在程序初始化时只被调用一次。并处理传入的 init payload
,如果有的话。
同样可选的handle()
函数将在每次程序收到传入的消息时被调用。在这种情况下,payload
将被处理。