4个版本
0.1.3 | 2022年12月20日 |
---|---|
0.1.2 | 2022年12月10日 |
0.1.1 | 2022年11月23日 |
0.1.0 | 2022年11月22日 |
#742 in 进程宏
40KB
601 代码行
这是什么
这是一个用于RPC编程的宏,它可以生成一个结构体和一个thunk(占位符),允许使用支持serde::Deserialize
的结构体参数调用该函数。
如何使用
-
使用
#[server_function]
属性标记函数#[server_function] fn add(a: u32, b: u32) -> u32 { a + b }
-
这将生成与您的函数参数匹配的
AddArgs
结构体,如下所示struct AddArgs { a: u32, b: u32 }
以及一个名为
add_thunk
的函数,它以AddArgs
结构体作为参数 -
现在您可以调用它了
// will return 10, same as original function add_thunk(AddArgs { a: 5, b: 5 })
特性
messagepack
启用rmp-serde,允许使用原始messagepack字节调用服务器函数,使用with_bytes_thunk(bytes: &[u8])
示例
let bytes = rmp_serde::to_vec(AddArgs { a: 5, b: 5 }).unwrap();
add_messagepack_thunk(&bytes) // should return 10
依赖项
~1–1.7MB
~32K SLoC