@@ -8,7 +8,9 @@ use log::warn;
88use proc_macro2:: { Ident , Punct , Spacing , Span , TokenStream } ;
99use quote:: { quote, ToTokens } ;
1010
11- use crate :: util:: { self , Config , ToSanitizedSnakeCase , ToSanitizedUpperCase , U32Ext } ;
11+ use crate :: util:: {
12+ self , Config , ToSanitizedPascalCase , ToSanitizedSnakeCase , ToSanitizedUpperCase , U32Ext ,
13+ } ;
1214use anyhow:: { anyhow, Result } ;
1315
1416pub fn render (
@@ -478,7 +480,7 @@ pub fn fields(
478480 derive_from_base ( mod_items, & base, & name_pc_r, & base_pc_r, & readerdoc) ;
479481 } else {
480482 let has_reserved_variant = evs. values . len ( ) != ( 1 << width) ;
481- let variants = Variant :: from_enumerated_values ( evs) ?;
483+ let variants = Variant :: from_enumerated_values ( evs, config . pascal_enum_values ) ?;
482484 let mut enum_items = TokenStream :: new ( ) ;
483485
484486 if variants. is_empty ( ) {
@@ -610,7 +612,7 @@ pub fn fields(
610612 let mut unsafety = unsafety ( f. write_constraint . as_ref ( ) , width) ;
611613
612614 if let Some ( ( evs, base) ) = lookup_filter ( & lookup_results, Usage :: Write ) {
613- let variants = Variant :: from_enumerated_values ( evs) ?;
615+ let variants = Variant :: from_enumerated_values ( evs, config . pascal_enum_values ) ?;
614616
615617 if variants. len ( ) == 1 << width {
616618 unsafety = None ;
@@ -872,7 +874,7 @@ struct Variant {
872874}
873875
874876impl Variant {
875- fn from_enumerated_values ( evs : & EnumeratedValues ) -> Result < Vec < Self > > {
877+ fn from_enumerated_values ( evs : & EnumeratedValues , pc : bool ) -> Result < Vec < Self > > {
876878 let span = Span :: call_site ( ) ;
877879 evs. values
878880 . iter ( )
@@ -891,7 +893,14 @@ impl Variant {
891893 . description
892894 . clone ( )
893895 . unwrap_or_else ( || format ! ( "`{:b}`" , value) ) ,
894- pc : Ident :: new ( & ev. name . to_sanitized_upper_case ( ) , span) ,
896+ pc : Ident :: new (
897+ & ( if pc {
898+ ev. name . to_sanitized_pascal_case ( )
899+ } else {
900+ ev. name . to_sanitized_upper_case ( )
901+ } ) ,
902+ span,
903+ ) ,
895904 nksc : Ident :: new ( & nksc, span) ,
896905 sc : Ident :: new ( & sc, span) ,
897906 value,
0 commit comments