我想要写一个宏,它可以分解一个路径来操作它的组件。例如:
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"]);
}在标准库或任何比较受欢迎的板条箱中是否存在这样的东西,是否可以用宏实现?还是需要一个编译器插件?
发布于 2016-09-02 04:54:10
它需要一个编译器插件;这不能用macro_rules!完成,也不能用语言或标准库中的任何部分来完成,而且任何做这件事的板条箱(据我所知)都需要一个夜间编译器。
https://stackoverflow.com/questions/39284004
复制相似问题