如何找到在“派生”中使用的符号的定义位置?

时间:2019-04-27 15:48:24

标签: rust

我来自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

1 个答案:

答案 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