【发布时间】:2021-12-25 03:53:58
【问题描述】:
我正在尝试使用底层节点模板示例并添加一些自定义结构。
但是,我收到以下编译错误:
“在这个范围内找不到类型Vec”
使用的结构示例(+ 相关特征以及我从哪里导入它们)是:
use codec::{Encode, Decode};
use scale_info::TypeInfo;
// , WrapperTypeDecode, WrapperTypeEncode, TypeInfo
#[derive(Encode, Decode, Default, Clone, PartialEq, TypeInfo)]
#[cfg_attr(feature = "std", derive(Debug))]
pub struct Image {
// Note: Consider changing to JPG compression in the future
pixels: Vec<Vec<(u8, u8, u8)>>,
height: u32,
width: u32
}
但鉴于基板需要大量引导,我无法提供一个可行的示例。
我尝试的一件事是添加#[cfg(feature = "std")],它应该启用了锈标准或Cargo.toml中定义的std,老实说,我不确定哪个。但这没有帮助。
我的主要问题是……我该如何解决这个问题?我在哪里错过了哪些进口?
我的次要更重要的问题是为什么会发生这种情况?在https://docs.substrate.io/tutorials/v3/kitties/pt1/ 教程中vec! 和Vec 似乎没有任何问题或进一步添加... 或者更确切地说,我看到的一个添加是#[cfg(feature = "std")] 在所有使用vec! 的impl 块之前使用但是不是在使用Vec 之前。为什么会这样?这是否只是允许一个块从 rust std 导入任何东西?还是它指的是在 Cargo.toml 中定义的 std ?为什么vec! 需要,Vec 不需要?
【问题讨论】: