簡體   English   中英

在Rust宏中操縱路徑?

[英]Manipulate paths in Rust macro?

我想編寫一個宏,它可以分解一條路徑來操縱其組件。 例如:

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"]);
}

在標准庫或任何相當流行的板條箱中是否存在這樣的東西,並且可以使用宏來實現嗎? 還是需要編譯器插件?

這將需要一個編譯器插件。 使用macro_rules!無法做到這macro_rules! ,也沒有與任何的語言或標准庫,並沒有做任何的板條箱(不,我知道任何)的一部分, 無論如何都會需要每晚編譯器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM