@@ -8,7 +8,9 @@ use log::warn;
8
8
use proc_macro2:: { Ident , Punct , Spacing , Span , TokenStream } ;
9
9
use quote:: { quote, ToTokens } ;
10
10
11
- use crate :: util:: { self , Config , ToSanitizedSnakeCase , ToSanitizedUpperCase , U32Ext } ;
11
+ use crate :: util:: {
12
+ self , Config , ToSanitizedPascalCase , ToSanitizedSnakeCase , ToSanitizedUpperCase , U32Ext ,
13
+ } ;
12
14
use anyhow:: { anyhow, Result } ;
13
15
14
16
pub fn render (
@@ -478,7 +480,7 @@ pub fn fields(
478
480
derive_from_base ( mod_items, & base, & name_pc_r, & base_pc_r, & readerdoc) ;
479
481
} else {
480
482
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 ) ?;
482
484
let mut enum_items = TokenStream :: new ( ) ;
483
485
484
486
if variants. is_empty ( ) {
@@ -610,7 +612,7 @@ pub fn fields(
610
612
let mut unsafety = unsafety ( f. write_constraint . as_ref ( ) , width) ;
611
613
612
614
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 ) ?;
614
616
615
617
if variants. len ( ) == 1 << width {
616
618
unsafety = None ;
@@ -872,7 +874,7 @@ struct Variant {
872
874
}
873
875
874
876
impl Variant {
875
- fn from_enumerated_values ( evs : & EnumeratedValues ) -> Result < Vec < Self > > {
877
+ fn from_enumerated_values ( evs : & EnumeratedValues , pc : bool ) -> Result < Vec < Self > > {
876
878
let span = Span :: call_site ( ) ;
877
879
evs. values
878
880
. iter ( )
@@ -891,7 +893,14 @@ impl Variant {
891
893
. description
892
894
. clone ( )
893
895
. 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
+ ) ,
895
904
nksc : Ident :: new ( & nksc, span) ,
896
905
sc : Ident :: new ( & sc, span) ,
897
906
value,
0 commit comments