1
作爲一種學習練習,我試圖編寫一個生成兩個聲明的宏。在這個例子中,我嘗試寫了一個單場枚舉和包含字段的實例的靜態向量生成聲明宏:一個Rust宏可以生成多個聲明嗎?
#![feature(macro_rules)]
macro_rules! create_enum(
($enum_name : ident , $a_field_name : ident) =>
{
enum $enum_name { $a_field_name };
static foovec: [$enum_name,..1] = [ $a_field_name ];
};
)
create_enum! (Direction , NORTH)
我得到的錯誤:
enums.rs:5:36: 5:37 error: macro expansion ignores token `;` and any following
enums.rs:5 enum $enum_name { $a_field_name };
我試過也許10個標點符號變化沒有成功,所以我開始懷疑這是否不是生鏽的宏所支持的。