6个版本 (3个重大更新)
新增 0.4.0 | 2024年8月19日 |
---|---|
0.3.0 | 2023年12月27日 |
0.2.0 | 2023年9月21日 |
0.1.2 | 2023年7月9日 |
0.1.1 | 2023年6月28日 |
#481 in 过程宏
每月455次下载
在 32 个crate中使用 (2个直接使用)
16KB
294 行
derive_util
derive_util为derive宏提供工具。
struct visitor
struct visitor提供了对结构体类型的分发方法。实现者需要为命名字段、非命名字段和单元结构体实现。
要重写命名字段,声明方法 StructVisitor::visit_struct_named_fields。
fn visit_struct_named_fields(
&mut self,
ty_name: &syn::Ident,
ds: &syn::DataStruct,
fields: &syn::FieldsNamed,
) -> Self::Output;
要重写非命名字段,声明方法 StructVisitor::visit_struct_unnamed_fields。
fn visit_struct_unnamed_fields(
&mut self,
ty_name: &syn::Ident,
ds: &syn::DataStruct,
fields: &syn::FieldsUnnamed,
) -> Self::Output;
要重写单元结构体,声明方法 StructVisitor::visit_struct_unit。
fn visit_struct_unit(&mut self, _ty_name: &syn::Ident, _ds: &syn::DataStruct) -> Self::Output;
enum visitor
要重写具有命名字段的枚举,声明方法 EnumVisitor::visit_enum_variant_named_field。
fn visit_enum_variant_named_field(
&mut self,
ty_name: &syn::Ident,
de: &syn::DataEnum,
variant: &syn::Variant,
fields: &syn::FieldsNamed,
) -> Self::VariantOutput;
要重写具有非命名字段的枚举,声明方法 EnumVisitor::visit_enum_variant_unnamed_field。
fn visit_enum_variant_unnamed_field(
&mut self,
ty_name: &syn::Ident,
de: &syn::DataEnum,
variant: &syn::Variant,
fields: &syn::FieldsUnnamed,
) -> Self::VariantOutput;
要重写单元枚举,声明方法 EnumVisitor::visit_enum_variant_unit。
fn visit_enum_variant_unit(
&mut self,
ty_name: &syn::Ident,
de: &syn::DataEnum,
variant: &syn::Variant,
) -> Self::VariantOutput;
每个变体返回 Self::VariantOutput
。将这些输出组合成一个 Self::Output
。
fn combine_variants(
&mut self,
ty_name: &syn::Ident,
de: &syn::DataEnum,
variants: &[Self::VariantOutput],
) -> Self::Output;
状态
维护跟踪。该库被认为是稳定的,如果一年内未更改,则将进入维护模式。此库最后更新于2023-09-23。
范围
此库将为 derive 宏提供核心 Rust 数据类型供访问者使用。
缺陷
- 此库尚不完整,无法用于从其中派生的 prototk。
文档
最新文档始终可在 docs.rs 上找到。
依赖关系
~1.5MB
~35K SLoC