Tim*_*aya 1 rust rust-macros
我很好奇是否可以更改使用派生宏的结构内部的代码,或者是否仅限于在外部生成新代码?
例子
通过 SomeMacro 将另一个字段添加到 Building 结构中。
#[derive(SomeMacro)] pub struct Building { colour: String, // Add height: u8 through derive macro }
Kev*_*eid 6
这不可能。这是派生宏的基本特征:它们采用现有项目的标记并生成新的、单独的项目(通常是特征impl)。
impl
如果您想修改struct项目本身,则必须创建一个属性宏,它可以返回输入标记的替换。属性宏不是使用derive属性调用的,而是属性本身:#[some_macro] pub struct Building { ...
struct
derive
#[some_macro] pub struct Building { ...
归档时间:
4 年,2 月 前
查看次数:
988 次
最近记录: