[英]Using $crate in Rust's procedural macros?
我知道$crate
變量是什么,但據我所知,它不能在過程宏中使用。 有沒有其他方法可以達到類似的效果?
我有一個例子,大致要求我使用報價和每晚 Rust 寫這樣的東西
quote!(
struct Foo {
bar: [SomeTrait;#len]
}
)
我需要確保SomeTrait
在 scope 中( #len
是在片段的 scope 之外引用 integer )。
我在夜間使用 quote 和 syn 使用過程宏 2.0,因為proc-macro-hack
對我不起作用。 這是我試圖概括的例子。
您可以將您的 proc-macro 包裝在聲明性宏中,並將$crate
標識符傳遞給您的 proc-macro 以供重用(例如,請參閱此提交)。 它將使用特殊的$crate
標識符創建一個proc_macro::Ident值。
請注意,您不能手動創建這樣的標識符,因為$
通常在標識符內部是無效的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.