derive_util provides tools for derive macros.
The struct visitor provides a method that dispatches over the type of struct. It is up to the implementor to implement for named-fields, unnamed-fields, and the unit struct.
To override named fields, declare method [visitstructnamed_fields].
fn visit_struct_named_fields(
&mut self,
ty_name: &syn::Ident,
ds: &syn::DataStruct,
fields: &syn::FieldsNamed,
) -> Self::Output;
To override unnamed fields, declare method [visitstructunnamed_fields].
fn visit_struct_unnamed_fields(
&mut self,
ty_name: &syn::Ident,
ds: &syn::DataStruct,
fields: &syn::FieldsUnnamed,
) -> Self::Output;
To override the unit struct, declare method [visitstructunit].
fn visit_struct_unit(&mut self, _ty_name: &syn::Ident, _ds: &syn::DataStruct) -> Self::Output;
To override the struct with named fields, declare method [visitenumvariantnamedfield].
fn visit_enum_variant_named_field(
&mut self,
ty_name: &syn::Ident,
de: &syn::DataEnum,
variant: &syn::Variant,
fields: &syn::FieldsNamed,
) -> Self::VariantOutput;
To override the struct with unnamed fields, declare method [visitenumvariantunnamedfield].
fn visit_enum_variant_unnamed_field(
&mut self,
ty_name: &syn::Ident,
de: &syn::DataEnum,
variant: &syn::Variant,
fields: &syn::FieldsUnnamed,
) -> Self::VariantOutput;
To override the unit enum, declare method [visitenumvariant_unit].
fn visit_enum_variant_unit(
&mut self,
ty_name: &syn::Ident,
de: &syn::DataEnum,
variant: &syn::Variant,
) -> Self::VariantOutput;
Each variant returns Self::VariantOutput
. Combine these outputs into one Self::Output
.
fn combine_variants(
&mut self,
ty_name: &syn::Ident,
de: &syn::DataEnum,
variants: &[Self::VariantOutput],
) -> Self::Output;
Maintenance track. The library is considered stable and will be put into maintenance mode if unchanged for one year.
This library will provide visitors for the core rust data types for use in derive macros.
The latest documentation is always available at docs.rs.