@@ -544,7 +544,7 @@ private static void generateCompositeDecoder(
544
544
decoderName ,
545
545
decoderTypeName );
546
546
547
- indent (sb , level + 1 , "if self.acting_version < %d {\n " , fieldToken .version ());
547
+ indent (sb , level + 1 , "if self.acting_version > 0 && self.acting_version < %d {\n " , fieldToken .version ());
548
548
indent (sb , level + 2 , "return Either::Left(self);\n " );
549
549
indent (sb , level + 1 , "}\n \n " );
550
550
@@ -578,7 +578,7 @@ private static void generateBitSetDecoder(
578
578
579
579
if (bitsetToken .version () > 0 )
580
580
{
581
- indent (sb , level + 1 , "if self.acting_version < %d {\n " , bitsetToken .version ());
581
+ indent (sb , level + 1 , "if self.acting_version > 0 && self.acting_version < %d {\n " , bitsetToken .version ());
582
582
indent (sb , level + 2 , "return %s::default();\n " , structTypeName );
583
583
indent (sb , level + 1 , "}\n \n " );
584
584
}
@@ -638,8 +638,8 @@ private static void generatePrimitiveArrayDecoder(
638
638
639
639
if (fieldToken .version () > 0 )
640
640
{
641
- indent (sb , level + 1 , "if self.acting_version < %d {\n " , fieldToken .version ());
642
- indent (sb , level + 2 , "return [%s, %d];\n " , encoding .applicableNullValue (), arrayLength );
641
+ indent (sb , level + 1 , "if self.acting_version > 0 && self.acting_version < %d {\n " , fieldToken .version ());
642
+ indent (sb , level + 2 , "return [%s; %d];\n " , encoding .applicableNullValue (), arrayLength );
643
643
indent (sb , level + 1 , "}\n \n " );
644
644
}
645
645
@@ -739,7 +739,7 @@ private static void generatePrimitiveOptionalDecoder(
739
739
740
740
if (fieldToken .version () > 0 )
741
741
{
742
- indent (sb , level + 1 , "if self.acting_version < %d {\n " , fieldToken .version ());
742
+ indent (sb , level + 1 , "if self.acting_version > 0 && self.acting_version < %d {\n " , fieldToken .version ());
743
743
indent (sb , level + 2 , "return None;\n " );
744
744
indent (sb , level + 1 , "}\n \n " );
745
745
}
@@ -792,7 +792,7 @@ private static void generatePrimitiveRequiredDecoder(
792
792
793
793
if (fieldToken .version () > 0 )
794
794
{
795
- indent (sb , level + 1 , "if self.acting_version < %d {\n " , fieldToken .version ());
795
+ indent (sb , level + 1 , "if self.acting_version > 0 && self.acting_version < %d {\n " , fieldToken .version ());
796
796
indent (sb , level + 2 , "return %s;\n " ,
797
797
generateRustLiteral (encoding .primitiveType (), encoding .applicableNullValue ().toString ()));
798
798
indent (sb , level + 1 , "}\n \n " );
@@ -941,7 +941,7 @@ static void generateDecoderVarData(
941
941
{
942
942
if (varDataToken .version () > 0 )
943
943
{
944
- indent (sb , level + 1 , "if self.acting_version < %d {\n " , varDataToken .version ());
944
+ indent (sb , level + 1 , "if self.acting_version > 0 && self.acting_version < %d {\n " , varDataToken .version ());
945
945
indent (sb , level + 2 , "return (self.parent.as_ref().unwrap().get_limit(), 0);\n " );
946
946
indent (sb , level + 1 , "}\n \n " );
947
947
}
@@ -956,7 +956,7 @@ static void generateDecoderVarData(
956
956
{
957
957
if (varDataToken .version () > 0 )
958
958
{
959
- indent (sb , level + 1 , "if self.acting_version < %d {\n " , varDataToken .version ());
959
+ indent (sb , level + 1 , "if self.acting_version > 0 && self.acting_version < %d {\n " , varDataToken .version ());
960
960
indent (sb , level + 2 , "return (self.get_limit(), 0);\n " );
961
961
indent (sb , level + 1 , "}\n \n " );
962
962
}
@@ -975,7 +975,7 @@ static void generateDecoderVarData(
975
975
976
976
if (varDataToken .version () > 0 )
977
977
{
978
- indent (sb , level + 1 , "if self.acting_version < %d {\n " , varDataToken .version ());
978
+ indent (sb , level + 1 , "if self.acting_version > 0 && self.acting_version < %d {\n " , varDataToken .version ());
979
979
indent (sb , level + 2 , "return &[] as &[u8];\n " );
980
980
indent (sb , level + 1 , "}\n \n " );
981
981
}
@@ -1356,6 +1356,7 @@ private static void generateCompositeEncoder(
1356
1356
indent (out , 1 , "pub struct %s<P> {\n " , encoderName );
1357
1357
indent (out , 2 , "parent: Option<P>,\n " );
1358
1358
indent (out , 2 , "offset: usize,\n " );
1359
+ indent (out , 2 , "acting_version: usize,\n " );
1359
1360
indent (out , 1 , "}\n \n " );
1360
1361
1361
1362
appendImplWriterForComposite (out , 1 , encoderName );
@@ -1417,6 +1418,7 @@ private static void generateCompositeDecoder(
1417
1418
indent (out , 1 , "pub struct %s<P> {\n " , decoderName );
1418
1419
indent (out , 2 , "parent: Option<P>,\n " );
1419
1420
indent (out , 2 , "offset: usize,\n " );
1421
+ indent (out , 2 , "acting_version: usize,\n " );
1420
1422
indent (out , 1 , "}\n \n " );
1421
1423
1422
1424
appendImplReaderForComposite (out , 1 , decoderName );
0 commit comments