@@ -756,7 +756,11 @@ pub fn fields(
756756 // get the type of value structure. It can be generated from either name field
757757 // in enumeratedValues if it's an enumeration, or from field name directly if it's not.
758758 let value_read_ty = ident (
759- ev. values ( ) . name . as_deref ( ) . unwrap_or ( & name) ,
759+ if config. field_names_for_enums {
760+ & name
761+ } else {
762+ ev. values ( ) . name . as_deref ( ) . unwrap_or ( & name)
763+ } ,
760764 config,
761765 fmt,
762766 span,
@@ -909,7 +913,16 @@ pub fn fields(
909913 }
910914 }
911915 EV :: Derived ( _, base) => {
912- let base_ident = ident ( & base. name , config, fmt, span) ;
916+ let base_ident = if config. field_names_for_enums {
917+ ident (
918+ & util:: replace_suffix ( & base. field ( ) . name , "" ) ,
919+ config,
920+ fmt,
921+ span,
922+ )
923+ } else {
924+ ident ( & base. name , config, fmt, span)
925+ } ;
913926 if !derives. contains ( & value_read_ty) {
914927 let base_path = base_syn_path ( base, & fpath, & base_ident, config) ?;
915928 mod_items. extend ( quote ! {
@@ -1096,7 +1109,11 @@ pub fn fields(
10961109 fmt = "enum_name" ;
10971110 } ;
10981111 let value_write_ty = ident (
1099- ev. values ( ) . name . as_deref ( ) . unwrap_or ( & name) ,
1112+ if config. field_names_for_enums {
1113+ & name
1114+ } else {
1115+ ev. values ( ) . name . as_deref ( ) . unwrap_or ( & name)
1116+ } ,
11001117 config,
11011118 fmt,
11021119 span,
@@ -1164,8 +1181,16 @@ pub fn fields(
11641181 }
11651182 }
11661183 EV :: Derived ( _, base) => {
1167- let base_ident = ident ( & base. name , config, fmt, span) ;
1168-
1184+ let base_ident = if config. field_names_for_enums {
1185+ ident (
1186+ & util:: replace_suffix ( & base. field ( ) . name , "" ) ,
1187+ config,
1188+ fmt,
1189+ span,
1190+ )
1191+ } else {
1192+ ident ( & base. name , config, fmt, span)
1193+ } ;
11691194 if rwenum. generate_write_enum ( ) && !derives. contains ( & value_write_ty) {
11701195 let base_path = base_syn_path ( base, & fpath, & base_ident, config) ?;
11711196 mod_items. extend ( quote ! {
0 commit comments