我来自Java背景,在其中找到符号定义位置非常简单:它在同一包中是以太币,或者是通过导入来的。
在Deserialize
板条箱中定义了serde
,但源文件不包含对serde
板条箱的引用:
#[derive(Deserialize)]
struct Args {
arg_spec: Vec<String>,
flag_short: bool,
flag_porcelain: bool,
flag_branch: bool,
flag_z: bool,
flag_ignored: bool,
flag_untracked_files: Option<String>,
flag_ignore_submodules: Option<String>,
flag_git_dir: Option<String>,
flag_repeat: bool,
flag_list_submodules: bool,
}
(source)
答案 0 :(得分:3)
注意声明:
#[macro_use]
extern crate serde_derive;
(source)
这将把serde_derive
包中定义的 all 宏带入范围。其中之一就是Deserialize
宏,它有助于实现Deserialize
特性。
这是做事的老方法。在2018版中,preferred way is to import macros with the more familiar use
statements。