如何解决AccountId 元组和ink_storage::collections::Vec 的HashMap
我想用墨水创建一个 HashMap
存储项!
#[ink(storage)]
pub struct item {
shipment: ink_storage::collections::HashMap<
(AccountId,AccountId),ink_storage::collections::Vec<u128>,>,}
并初始化它:
#[ink(constructor)]
pub fn new() -> Self {
Self {
shipment: ink_storage::collections::HashMap::new(),}
}
我遇到了这个错误信息
特征 PackedLayout
未实现
`ink_storage::Vec
解决方法
ink_storage::Vec
没有实现 PackedLayout
因为它的布局没有打包!根据{{3}}:
尽管与 Rust 的 Vec
类型相似,但此存储 Vec
在其内部数据布局上有许多不同。虽然它将数据存储在连续的存储槽中,但这并不意味着数据实际上密集地存储在内存中。
数据被组织成连续的块,但每个块可能不与内存中的前一块相邻。
另一方面,std::vec::Vec
确实实现了PackedLayout
,因此您应该可以使用它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。