【问题标题】:Manipulate paths in Rust macro?在 Rust 宏中操作路径?
【发布时间】:2016-09-02 03:46:25
【问题描述】:

我想编写一个可以分解路径以操作其组件的宏。例如:

macro_rules! example {
    ($path:path) => {
        vec![
            stringify!(get_path_init!($path)),
            stringify!(get_path_last!($path)),
        ]
    };
}

fn main() {
    let path_parts = example!(std::vec::Vec);
    assert_eq!(path_parts, vec!["std::vec", "Vec"]);
}

在标准库或任何相当流行的 crate 中是否存在类似的东西,是否可以使用宏来实现?还是需要编译器插件?

【问题讨论】:

    标签: macros rust


    【解决方案1】:

    它需要一个编译器插件;这不能用macro_rules! 来完成,也不能用任何属于语言或标准库的东西来完成,任何 做过 的 crate(我不知道)都需要一个夜间编译器 无论如何。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-01
      • 1970-01-01
      • 2017-04-26
      • 2010-09-08
      • 1970-01-01
      • 2017-01-30
      相关资源
      最近更新 更多