我克隆了这个模板。有这样的代码:
decl_storage! {
trait Store for Module<T: Trait> as TemplateModule {
Something get(fn something): Option<u32>;
}
}
是什么Something get(fn something): Option<u32>;
意思?尤其是Something
之前是什么get(fn something)
?
显然,此宏接受自定义语法,如https://substrate.dev/rustdocs/v2.0.0-rc5/frame_support/macro.decl_storage.html中所述:
基本存储可以这样扩展:
#vis #name get(fn #getter) config(#field_name) build(#closure): #type = #default;
- #vis:设置结构的可见性。酒吧或什么都没有。
- #name:存储项的名称,在存储中用作前缀。
- [可选] get(fn #getter):将函数#getter 实现到模块。
- [可选] config(#field_name):如果设置了 get,则 field_name 是可选的。将在 GenesisConfig 中包含该项目。
- [可选] build(#closure):使用存储覆盖调用闭包。
- #type:存储类型。
- [可选] #default:无时返回值。
所以 in yourSomething
是存储项的名称,用作存储中的前缀。