Macros 在Rust宏中操纵路径?
我想写一个宏,可以分解一条路径来操作它的组件。例如:Macros 在Rust宏中操纵路径?,macros,rust,Macros,Rust,我想写一个宏,可以分解一条路径来操作它的组件。例如: macro_rules! example { ($path:path) => { vec![ stringify!(get_path_init!($path)), stringify!(get_path_last!($path)), ] }; } fn main() { let path_parts = example!(std::
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"]);
}
在标准库或任何合理流行的板条箱中是否存在类似的内容,是否可以使用宏实现?或者它需要一个编译器插件?它需要一个编译器插件;这不能用
宏规则来完成代码>,也不是语言或标准库的一部分,而且任何这样做的板条箱(据我所知没有)无论如何都需要每晚的编译器