如果我們想推廣將#[derive(...)]
應用於一個結構體,在某些情況下,將它包含在一個宏中會很有用。是否可以在宏中嵌套結構聲明以應用結構屬性?
非工作的例子:
my_traits!(
pub struct MyType(u32),
MyType
);
凡my_traits
可以與#[derive(...)]
前綴的第一個參數,並使用第二個參數來聲明impl SomeTrait for $t {...}
。
聲明實現工作沒有任何問題,但我沒有設法找到一種方法來使用宏來爲結構聲明前綴的屬性。
獲取這可以用於一個例子來看看這個問題:
Possible to derive attributes *after* a struct declaration?
謝謝,我可能最終會這樣做。主要的缺點是 - 儘管這樣做,我想要傳入整個聲明,否則我需要爲'pub struct $ name(u32);'和'struct $ name(pub u32);' (公共結構和公共成員)。 – ideasman42