Reorganize DeriveInput
diff --git a/src/gen/fold.rs b/src/gen/fold.rs
index 14e4575..a7438b9 100644
--- a/src/gen/fold.rs
+++ b/src/gen/fold.rs
@@ -66,16 +66,18 @@
# [ cfg ( feature = "full" ) ]
fn fold_block(&mut self, i: Block) -> Block { fold_block(self, i) }
-fn fold_body(&mut self, i: Body) -> Body { fold_body(self, i) }
-
-fn fold_body_enum(&mut self, i: BodyEnum) -> BodyEnum { fold_body_enum(self, i) }
-
-fn fold_body_struct(&mut self, i: BodyStruct) -> BodyStruct { fold_body_struct(self, i) }
-
fn fold_bound_lifetimes(&mut self, i: BoundLifetimes) -> BoundLifetimes { fold_bound_lifetimes(self, i) }
fn fold_const_param(&mut self, i: ConstParam) -> ConstParam { fold_const_param(self, i) }
+fn fold_data(&mut self, i: Data) -> Data { fold_data(self, i) }
+
+fn fold_data_enum(&mut self, i: DataEnum) -> DataEnum { fold_data_enum(self, i) }
+
+fn fold_data_struct(&mut self, i: DataStruct) -> DataStruct { fold_data_struct(self, i) }
+
+fn fold_data_union(&mut self, i: DataUnion) -> DataUnion { fold_data_union(self, i) }
+
fn fold_derive_input(&mut self, i: DeriveInput) -> DeriveInput { fold_derive_input(self, i) }
fn fold_expr(&mut self, i: Expr) -> Expr { fold_expr(self, i) }
@@ -165,6 +167,12 @@
fn fold_field_pat(&mut self, i: FieldPat) -> FieldPat { fold_field_pat(self, i) }
# [ cfg ( feature = "full" ) ]
fn fold_field_value(&mut self, i: FieldValue) -> FieldValue { fold_field_value(self, i) }
+
+fn fold_fields(&mut self, i: Fields) -> Fields { fold_fields(self, i) }
+
+fn fold_fields_named(&mut self, i: FieldsNamed) -> FieldsNamed { fold_fields_named(self, i) }
+
+fn fold_fields_unnamed(&mut self, i: FieldsUnnamed) -> FieldsUnnamed { fold_fields_unnamed(self, i) }
# [ cfg ( feature = "full" ) ]
fn fold_file(&mut self, i: File) -> File { fold_file(self, i) }
# [ cfg ( feature = "full" ) ]
@@ -378,8 +386,6 @@
fn fold_variant(&mut self, i: Variant) -> Variant { fold_variant(self, i) }
-fn fold_variant_data(&mut self, i: VariantData) -> VariantData { fold_variant_data(self, i) }
-
fn fold_vis_crate(&mut self, i: VisCrate) -> VisCrate { fold_vis_crate(self, i) }
fn fold_vis_public(&mut self, i: VisPublic) -> VisPublic { fold_vis_public(self, i) }
@@ -672,37 +678,6 @@
}
}
-pub fn fold_body<V: Folder + ?Sized>(_visitor: &mut V, _i: Body) -> Body {
- match _i {
- Body::Enum(_binding_0, ) => {
- Body::Enum (
- _visitor.fold_body_enum(_binding_0),
- )
- }
- Body::Struct(_binding_0, ) => {
- Body::Struct (
- _visitor.fold_body_struct(_binding_0),
- )
- }
- }
-}
-
-pub fn fold_body_enum<V: Folder + ?Sized>(_visitor: &mut V, _i: BodyEnum) -> BodyEnum {
- BodyEnum {
- enum_token: Token ! [ enum ](tokens_helper(_visitor, &(_i . enum_token).0)),
- brace_token: Brace(tokens_helper(_visitor, &(_i . brace_token).0)),
- variants: FoldHelper::lift(_i . variants, |it| { _visitor.fold_variant(it) }),
- }
-}
-
-pub fn fold_body_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: BodyStruct) -> BodyStruct {
- BodyStruct {
- data: _visitor.fold_variant_data(_i . data),
- struct_token: Token ! [ struct ](tokens_helper(_visitor, &(_i . struct_token).0)),
- semi_token: (_i . semi_token).map(|it| { Token ! [ ; ](tokens_helper(_visitor, &(it).0)) }),
- }
-}
-
pub fn fold_bound_lifetimes<V: Folder + ?Sized>(_visitor: &mut V, _i: BoundLifetimes) -> BoundLifetimes {
BoundLifetimes {
for_token: Token ! [ for ](tokens_helper(_visitor, &(_i . for_token).0)),
@@ -724,13 +699,56 @@
}
}
+pub fn fold_data<V: Folder + ?Sized>(_visitor: &mut V, _i: Data) -> Data {
+ match _i {
+ Data::Struct(_binding_0, ) => {
+ Data::Struct (
+ _visitor.fold_data_struct(_binding_0),
+ )
+ }
+ Data::Enum(_binding_0, ) => {
+ Data::Enum (
+ _visitor.fold_data_enum(_binding_0),
+ )
+ }
+ Data::Union(_binding_0, ) => {
+ Data::Union (
+ _visitor.fold_data_union(_binding_0),
+ )
+ }
+ }
+}
+
+pub fn fold_data_enum<V: Folder + ?Sized>(_visitor: &mut V, _i: DataEnum) -> DataEnum {
+ DataEnum {
+ enum_token: Token ! [ enum ](tokens_helper(_visitor, &(_i . enum_token).0)),
+ brace_token: Brace(tokens_helper(_visitor, &(_i . brace_token).0)),
+ variants: FoldHelper::lift(_i . variants, |it| { _visitor.fold_variant(it) }),
+ }
+}
+
+pub fn fold_data_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: DataStruct) -> DataStruct {
+ DataStruct {
+ struct_token: Token ! [ struct ](tokens_helper(_visitor, &(_i . struct_token).0)),
+ fields: _visitor.fold_fields(_i . fields),
+ semi_token: (_i . semi_token).map(|it| { Token ! [ ; ](tokens_helper(_visitor, &(it).0)) }),
+ }
+}
+
+pub fn fold_data_union<V: Folder + ?Sized>(_visitor: &mut V, _i: DataUnion) -> DataUnion {
+ DataUnion {
+ union_token: Token ! [ union ](tokens_helper(_visitor, &(_i . union_token).0)),
+ fields: _visitor.fold_fields_named(_i . fields),
+ }
+}
+
pub fn fold_derive_input<V: Folder + ?Sized>(_visitor: &mut V, _i: DeriveInput) -> DeriveInput {
DeriveInput {
attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
vis: _visitor.fold_visibility(_i . vis),
ident: _visitor.fold_ident(_i . ident),
generics: _visitor.fold_generics(_i . generics),
- body: _visitor.fold_body(_i . body),
+ data: _visitor.fold_data(_i . data),
}
}
@@ -1334,6 +1352,36 @@
expr: _visitor.fold_expr(_i . expr),
}
}
+
+pub fn fold_fields<V: Folder + ?Sized>(_visitor: &mut V, _i: Fields) -> Fields {
+ match _i {
+ Fields::Named(_binding_0, ) => {
+ Fields::Named (
+ _visitor.fold_fields_named(_binding_0),
+ )
+ }
+ Fields::Unnamed(_binding_0, ) => {
+ Fields::Unnamed (
+ _visitor.fold_fields_unnamed(_binding_0),
+ )
+ }
+ Fields::Unit => { Fields::Unit }
+ }
+}
+
+pub fn fold_fields_named<V: Folder + ?Sized>(_visitor: &mut V, _i: FieldsNamed) -> FieldsNamed {
+ FieldsNamed {
+ brace_token: Brace(tokens_helper(_visitor, &(_i . brace_token).0)),
+ fields: FoldHelper::lift(_i . fields, |it| { _visitor.fold_field(it) }),
+ }
+}
+
+pub fn fold_fields_unnamed<V: Folder + ?Sized>(_visitor: &mut V, _i: FieldsUnnamed) -> FieldsUnnamed {
+ FieldsUnnamed {
+ paren_token: Paren(tokens_helper(_visitor, &(_i . paren_token).0)),
+ fields: FoldHelper::lift(_i . fields, |it| { _visitor.fold_field(it) }),
+ }
+}
# [ cfg ( feature = "full" ) ]
pub fn fold_file<V: Folder + ?Sized>(_visitor: &mut V, _i: File) -> File {
File {
@@ -1649,16 +1697,16 @@
_visitor.fold_item_type(_binding_0),
)
}
- Item::Enum(_binding_0, ) => {
- Item::Enum (
- _visitor.fold_item_enum(_binding_0),
- )
- }
Item::Struct(_binding_0, ) => {
Item::Struct (
_visitor.fold_item_struct(_binding_0),
)
}
+ Item::Enum(_binding_0, ) => {
+ Item::Enum (
+ _visitor.fold_item_enum(_binding_0),
+ )
+ }
Item::Union(_binding_0, ) => {
Item::Union (
_visitor.fold_item_union(_binding_0),
@@ -1831,7 +1879,7 @@
struct_token: Token ! [ struct ](tokens_helper(_visitor, &(_i . struct_token).0)),
ident: _visitor.fold_ident(_i . ident),
generics: _visitor.fold_generics(_i . generics),
- data: _visitor.fold_variant_data(_i . data),
+ fields: _visitor.fold_fields(_i . fields),
semi_token: (_i . semi_token).map(|it| { Token ! [ ; ](tokens_helper(_visitor, &(it).0)) }),
}
}
@@ -1872,7 +1920,7 @@
union_token: Token ! [ union ](tokens_helper(_visitor, &(_i . union_token).0)),
ident: _visitor.fold_ident(_i . ident),
generics: _visitor.fold_generics(_i . generics),
- data: _visitor.fold_variant_data(_i . data),
+ fields: _visitor.fold_fields_named(_i . fields),
}
}
# [ cfg ( feature = "full" ) ]
@@ -2715,7 +2763,7 @@
Variant {
attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
ident: _visitor.fold_ident(_i . ident),
- data: _visitor.fold_variant_data(_i . data),
+ fields: _visitor.fold_fields(_i . fields),
discriminant: (_i . discriminant).map(|it| { (
Token ! [ = ](tokens_helper(_visitor, &(( it ) . 0).0)),
_visitor.fold_expr(( it ) . 1),
@@ -2723,24 +2771,6 @@
}
}
-pub fn fold_variant_data<V: Folder + ?Sized>(_visitor: &mut V, _i: VariantData) -> VariantData {
- match _i {
- VariantData::Struct(_binding_0, _binding_1, ) => {
- VariantData::Struct (
- Brace(tokens_helper(_visitor, &(_binding_0).0)),
- FoldHelper::lift(_binding_1, |it| { _visitor.fold_field(it) }),
- )
- }
- VariantData::Tuple(_binding_0, _binding_1, ) => {
- VariantData::Tuple (
- Paren(tokens_helper(_visitor, &(_binding_0).0)),
- FoldHelper::lift(_binding_1, |it| { _visitor.fold_field(it) }),
- )
- }
- VariantData::Unit => { VariantData::Unit }
- }
-}
-
pub fn fold_vis_crate<V: Folder + ?Sized>(_visitor: &mut V, _i: VisCrate) -> VisCrate {
VisCrate {
pub_token: Token ! [ pub ](tokens_helper(_visitor, &(_i . pub_token).0)),