パスを分解してそのコンポーネントを操作できるマクロを作成したいと思います。例えば:
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!
、また言語や標準ライブラリ、および任意の木枠の一部だものでなかったそれを行う(私は知っているのではないということ)毎晩コンパイラが必要になり、とにかく。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加