我无法找到`mock!`

时间:2018-03-10 08:54:55

标签: macros rust

我对mocker的宏mock!感到好奇,所以我克隆了项目并尝试找到定义。不幸的是,我通过全文搜索检查了包含macro_rules!的每个句子,但无法找到它。是否有人可以告诉我mock!定义的位置?

1 个答案:

答案 0 :(得分:1)

macro_rules!定义的宏被称为宏示例。这些是您可以在Rust中定义的最简单但不是唯一的宏!特别是,mocker使用不稳定的Rust功能来注册更强大的宏。

您可以看到注册宏in mockers_codegen/src/lib.rs的代码:

pub fn register(reg: &mut rustc_plugin::Registry) {
    // ...
    reg.register_macro("mock", generate_mock);
    // ...
}

“定义”宏的功能是generate_mock

这些类型的工作与macro_rules!根本不同。解释所有不同类型的宏和编译器插件的细节对于这个答案来说太过分了。你可以看看this (unfortunately slightly outdated) answer of mine