@@ -449,7 +449,9 @@ private static void generateEnumEncoder(
449449 final String name ) throws IOException
450450 {
451451 final String referencedName = typeToken .referencedName ();
452- final String enumType = formatStructName (referencedName == null ? typeToken .name () : referencedName );
452+ final String enumType = format ("%s::%s" ,
453+ toLowerSnakeCase (referencedName == null ? typeToken .name () : referencedName ),
454+ formatStructName (referencedName == null ? typeToken .name () : referencedName ));
453455
454456 if (fieldToken .isConstantEncoding ())
455457 {
@@ -479,7 +481,10 @@ private static void generateBitSetEncoder(
479481 {
480482 final Encoding encoding = bitsetToken .encoding ();
481483 final String rustPrimitiveType = rustTypeName (encoding .primitiveType ());
482- final String structTypeName = formatStructName (bitsetToken .applicableTypeName ());
484+ final String referencedName = bitsetToken .referencedName ();
485+ final String structTypeName = format ("%s::%s" ,
486+ toLowerSnakeCase (referencedName == null ? bitsetToken .name () : referencedName ),
487+ formatStructName (bitsetToken .applicableTypeName ()));
483488 indent (sb , level , "#[inline]\n " );
484489 indent (sb , level , "pub fn %s(&mut self, value: %s) {\n " , formatFunctionName (name ), structTypeName );
485490
@@ -496,7 +501,9 @@ private static void generateCompositeEncoder(
496501 final String name ) throws IOException
497502 {
498503 final String encoderName = toLowerSnakeCase (encoderName (name ));
499- final String encoderTypeName = encoderName (formatStructName (typeToken .applicableTypeName ()));
504+ final String encoderTypeName = format ("%s::%s" ,
505+ codecModName (typeToken .referencedName () == null ? typeToken .name () : typeToken .referencedName ()),
506+ encoderName (formatStructName (typeToken .applicableTypeName ())));
500507 indent (sb , level , "/// COMPOSITE ENCODER\n " );
501508 indent (sb , level , "#[inline]\n " );
502509 indent (sb , level , "pub fn %s(self) -> %2$s<Self> {\n " ,
@@ -556,7 +563,10 @@ private static void generateCompositeDecoder(
556563 final String name ) throws IOException
557564 {
558565 final String decoderName = toLowerSnakeCase (decoderName (name ));
559- final String decoderTypeName = decoderName (formatStructName (typeToken .applicableTypeName ()));
566+ final String referencedName = typeToken .referencedName ();
567+ final String decoderTypeName = format ("%s::%s" ,
568+ codecModName (referencedName == null ? typeToken .name () : referencedName ),
569+ decoderName (formatStructName (typeToken .applicableTypeName ())));
560570 indent (sb , level , "/// COMPOSITE DECODER\n " );
561571 indent (sb , level , "#[inline]\n " );
562572 if (fieldToken .version () > 0 )
@@ -575,7 +585,7 @@ private static void generateCompositeDecoder(
575585 }
576586 else
577587 {
578- indent (sb , level , "pub fn %s(self) -> %2$ s<Self> {\n " ,
588+ indent (sb , level , "pub fn %s(self) -> %s<Self> {\n " ,
579589 decoderName ,
580590 decoderTypeName );
581591
@@ -593,7 +603,11 @@ private static void generateBitSetDecoder(
593603 {
594604 final Encoding encoding = bitsetToken .encoding ();
595605 final String rustPrimitiveType = rustTypeName (encoding .primitiveType ());
596- final String structTypeName = formatStructName (bitsetToken .applicableTypeName ());
606+ final String referencedName = bitsetToken .referencedName ();
607+ final String structTypeName = format ("%s::%s" ,
608+ toLowerSnakeCase (referencedName == null ? bitsetToken .name () : referencedName ),
609+ formatStructName (bitsetToken .applicableTypeName ()));
610+ indent (sb , level , "/// BIT SET DECODER\n " );
597611 indent (sb , level , "#[inline]\n " );
598612 indent (sb , level , "pub fn %s(&self) -> %s {\n " , formatFunctionName (name ), structTypeName );
599613
@@ -834,7 +848,9 @@ private static void generateEnumDecoder(
834848 final String name ) throws IOException
835849 {
836850 final String referencedName = typeToken .referencedName ();
837- final String enumType = formatStructName (referencedName == null ? typeToken .name () : referencedName );
851+ final String enumType = format ("%s::%s" ,
852+ toLowerSnakeCase (referencedName == null ? typeToken .name () : referencedName ),
853+ formatStructName (referencedName == null ? typeToken .name () : referencedName ));
838854
839855 if (fieldToken .isConstantEncoding ())
840856 {
0 commit comments