1 个不稳定版本
0.1.2 | 2022年5月20日 |
---|
#48 在 #macro-helpers
8KB
101 行
存储宏
用于与 cw-storage-plus
和 cosmwasm-storage
交互的过程宏助手。
当前功能
索引列表实现宏
自动为您索引结构体生成 IndexList
实现。
index_list_impl(T)
将在宏调用下方为结构体 T
生成 impl IndexList<T>
。
还需要从 cw-storage-plus
引入 IndexList
和 Index。
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
struct TestStruct {
id: u64,
id2: u32,
addr: Addr,
}
#[index_list_impl(TestStruct)] // <- Add this line right here,.
struct TestIndexes<'a> {
id: MultiIndex<'a, (U32Key, Vec<u8>), TestStruct>,
addr: UniqueIndex<'a, Addr, TestStruct>,
}
存储键、主键和前缀器实现派生宏
为所有者和引用变体自动生成 PrimaryKey
和 Prefixer 实现,以及
as_bytes
和 from_slice
实现。
StorageKey
将生成以下内容
impl PrimaryKey<'_> for T
impl<'a> PrimaryKey<'a> for &'a T
impl Prefixer<'_> for T
impl<'a> Prefixer<'a> for &'a T
pub fn as_bytes(&self) -> &[u8]
pub fn from_slice(b: &[u8]) ->T
对于在宏调用下方的枚举 T
。
还需要从 cw-storage-plus
引入 PrimaryKey
和 Prefixer。
#[derive(Clone, Copy, StorageKey)] // <- Add the derive macro here.
enum TestEnum {
G,
F,
}
```r
依赖项
~1.5MB
~35K SLoC