3个版本 (破坏性更新)
0.3.0 | 2023年10月20日 |
---|---|
0.2.0 | 2023年9月14日 |
0.1.0 | 2023年5月31日 |
19 在 #创世 中排名
每月下载量 75 次
在 11 个crate中使用(通过 sov-modules-api)
115KB
2.5K SLoC
sov-modules-macros
此crate提供针对模块系统专门设计的Rust宏。在开发模块时,开发者应主要关注业务逻辑的实现,无需担心低级细节,如消息序列化/反序列化或消息如何派发到适当的模块。
为了减轻编写重复和机械代码的负担,此crate提供了一组宏,可以生成必要的样板代码。
支持的派生宏如下
ModuleInfo
:为底层类型派生sov-modules-api::ModuleInfo
实现。Genesis
:为底层类型派生sov-modules-api::Genesis
实现。DispatchCall
:为底层类型派生sov-modules-api::DispatchCall
实现。MessageCodec
:为底层类型添加消息序列化/反序列化功能。
上述特质的定义可以在sov-modules-api crate中找到。
示例用法
/// Runtime is a collection of sov modules defined in the rollup.
#[derive(Genesis, DispatchCall, MessageCodec)]
pub struct Runtime<C: Context> {
accounts: accounts::Accounts<C>,
bank: sov_bank::Bank<C>,
sequencer: sequencer::Sequencer<C>,
...
some other modules
}
/// `Genesis` allow initialization of the rollup in following way:
runtime.genesis(&configuration, working_set)
/// `DispatchCall & MessageCodec` allows dispatching serialized messages to the appropriate module.
let call_result = RT::decode_call(message_data)
依赖
~4–14MB
~175K SLoC