[转]Rust:过程宏
关于rust的过程宏,有一篇外部文章值得推荐阅读下:
Rust 中的过程宏 proc-macro,来自知乎
或者[下面链接的文章更精美!强烈推荐]
Rust 中的过程宏 proc-macro,来自作者博客
当然,在看这文章前,要知道syn库中:
pub struct DeriveInput {pub attrs: Vec<Attribute>,pub vis: Visibility,pub ident: Ident,pub generics: Generics,pub data: Data,}
这其中,ident,data字段在上面的文章中被用到,可以预先了解一下。
ident是指变量名。
而data,是指包括以下部分结构体的数据。
data::{Field, Fields, FieldsNamed, FieldsUnnamed, Variant};
具体可以参考:
rust 使用 syn 库解析 AST