【发布时间】:2019-01-11 13:53:09
【问题描述】:
我想在 Parity Substrate 自定义运行时中使用 Struct 创建一个数据类型。数据类型旨在是通用的,以便我可以在不同的类型上使用它。
我正在尝试以下,但它没有编译。编译器抱怨找不到 T 的子类型。
pub struct CustomDataType<T> {
data: Vec<u8>,
balance: T::Balance,
owner: T::AccountId,
}
我应该能够编译通用结构。
【问题讨论】:
-
编译器将不知道关联类型
Balance和AccountId来自何处,除非您在T上应用提供它们的特征绑定。下一次,请看看什么是正确的minimal reproducible example,不要忘记包含相关的 crates 和模块。 -
请查看如何创建minimal reproducible example,然后查看edit 您的问题以包含它。我们无法分辨代码中存在哪些 crate、类型、特征、字段等。尝试在Rust Playground 上重现您的错误,或者您可以在全新的 Cargo 项目中重现它。还有Rust-specific MCVE tips。