簡體   English   中英

如何匹配 Rust 宏中的特征?

[英]How to match a trait in a Rust macro?

我的目標是作為輸入特征類型。

my_test_macro!(Trait1, Trait2<Test1, Test2=Test3>)

到目前為止,我嘗試的是編寫這樣的解析器。

$( $ty:ident < $( $N:ident $(: $b0:ident $(+$b:ident)* )? ),*  $($tname:ident=$ttype:ident),* > )+*

但它造成了當地的歧義。

error: local ambiguity: multiple parsing options: built-in NTs ident ('N') or ident ('tname').

您可以使用typath 元變量,具體取決於您要執行的操作:

macro_rules! my_test_macro {
    ($t1:ty, $t2:path) => {};
}

fn main() {
    my_test_macro!(Trait1, Trait2<Test1, Test2 = Test3>);
}

也可以看看:

暫無
暫無

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

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