M Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketConditionalIndexAttributeGenerator.cs => Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketConditionalIndexAttributeGenerator.cs +5 -0
@@ 288,6 288,11 @@ public class PacketConditionalIndexAttributeGenerator : IParameterGenerator
generator.PopLevel();
}
+ if (!packetInfo.Parameters.IsLast)
+ {
+ generator.ValidateNotLast(parameter.Name);
+ }
+
// end is last token if body
if (parameter.IsOptional())
{
M Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketContextListAttributeGenerator.cs => Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketContextListAttributeGenerator.cs +5 -0
@@ 125,6 125,11 @@ public class PacketContextListAttributeGenerator : IParameterGenerator
generator.AssignLocalVariable(parameter);
+ if (!packetInfo.Parameters.IsLast)
+ {
+ generator.ValidateNotLast(parameter.Name);
+ }
+
// end is last token if body
if (parameter.IsOptional())
{
M Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketGreedyIndexAttributeGenerator.cs => Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketGreedyIndexAttributeGenerator.cs +5 -0
@@ 97,6 97,11 @@ public class PacketGreedyIndexAttributeGenerator : IParameterGenerator
generator.PopLevel();
}
+ if (!packetInfo.Parameters.IsLast)
+ {
+ generator.ValidateNotLast(parameter.Name);
+ }
+
// end is last token if body
if (parameter.IsOptional())
{
M Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketIndexAttributeGenerator.cs => Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketIndexAttributeGenerator.cs +5 -0
@@ 138,6 138,11 @@ public class PacketIndexAttributeGenerator : IParameterGenerator
generator.PopLevel();
}
+ if (!packetInfo.Parameters.IsLast)
+ {
+ generator.ValidateNotLast(parameter.Name);
+ }
+
// end is last token if body
if (parameter.IsOptional())
{
M Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketListIndexAttributeGenerator.cs => Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketListIndexAttributeGenerator.cs +5 -0
@@ 129,6 129,11 @@ public class PacketListIndexAttributeGenerator : IParameterGenerator
generator.AssignLocalVariable(parameter, false);
+ if (!packetInfo.Parameters.IsLast)
+ {
+ generator.ValidateNotLast(parameter.Name);
+ }
+
// end is last token if body
if (parameter.IsOptional())
{
M Core/NosSmooth.PacketSerializersGenerator/ConverterDeserializationGenerator.cs => Core/NosSmooth.PacketSerializersGenerator/ConverterDeserializationGenerator.cs +14 -0
@@ 164,4 164,18 @@ if ({nullableVariableName} is null) {{
_textWriter.Indent--;
_textWriter.WriteLine("}");
}
+
+ /// <summary>
+ /// Validates that the string enumerator is currently not at the last token.
+ /// </summary>
+ /// <param name="parameterName">The parameter that is being converted.</param>
+ public void ValidateNotLast(string parameterName)
+ {
+ _textWriter.WriteLine($"if ({_stringEnumeratorVariable}.IsOnLastToken() ?? false)");
+ _textWriter.WriteLine("{");
+ _textWriter.Indent++;
+ _textWriter.WriteLine($"return new PacketEndNotExpectedError(this, \"{parameterName}\");");
+ _textWriter.Indent--;
+ _textWriter.WriteLine("}");
+ }
}=
\ No newline at end of file
M Core/NosSmooth.PacketSerializersGenerator/PacketConverterGenerator.cs => Core/NosSmooth.PacketSerializersGenerator/PacketConverterGenerator.cs +0 -5
@@ 120,11 120,6 @@ private IResultError? CheckDeserializationResult<T>(Result<T> result, string pro
return new PacketParameterSerializerError(this, property, result);
}}
- if (!last && (stringEnumerator.IsOnLastToken() ?? false))
- {{
- return new PacketEndNotExpectedError(this, property);
- }}
-
return null;
}}
}}"