Skip to main content

Module rt

Module rt 

Source
Expand description

ABI 运行时(spec §6):内存分配、u64 打包、JSON 信封。

插件作者通常不直接用本模块——register! 宏会生成 plugin_alloc / plugin_free / plugin_dispatch 三个导出并委托到这里。

Structs§

PluginError
插件侧错误(映射为信封里的 error 对象)。code 取值见 spec §6.4。
Req
请求信封:{ "method": string, "params": <json> }(spec §6.4)。
Resp
响应信封:{ ok, result } | { ok, error }(spec §6.4)。

Functions§

alloc
分配 size 字节(对齐 1)。size=0 返回 0,不分配。
call_host
插件 → 宿主调用(spec §6.3)。仅 wasm 环境可用;native 下直接报错(供单测桩用), 除非开 native-host feature——则路由到本地宿主替身(见 native_host.rs,仅测试用)。
dispatch
plugin_dispatch 的通用实现:解析请求信封 → 调业务闭包 → 写回响应。 入参缓冲区归宿主所有(宿主 alloc、宿主 free);返回值缓冲区由本函数 alloc、宿主读完 free。
free
释放 alloc 分配的内存。ptr=0 或 size=0 为 no-op。
pack
打包 (ptr, len) 为 u64:(ptr << 32) | len(spec §6.2)。
unpack
解包 u64 为 (ptr, len)。
write_out
把一段字节写进新分配的插件内存并打包返回(宿主读完负责 plugin_free)。