From ae1b3301e659c237a10f742675e1f8db9389d2db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Boh=C3=A1=C4=8Dek?= Date: Sat, 18 Feb 2023 11:59:16 +0100 Subject: [PATCH] feat: use "in" instead of "ref" in packet serializer --- .../BaseStringConverter.cs | 12 ++++++------ .../IStringConverter.cs | 8 ++++---- .../IStringSerializer.cs | 8 ++++---- .../Converters/Basic/BasicTypeConverter.cs | 4 ++-- .../Converters/Basic/BoolStringConverter.cs | 2 +- .../Basic/SpanFormattableTypeConverter.cs | 2 +- .../Converters/Common/NameStringConverter.cs | 4 ++-- .../Common/NullableWrapperConverter.cs | 8 ++++---- .../Common/OptionalWrapperConverter.cs | 8 ++++---- .../Packets/UpgradeRareSubPacketConverter.cs | 4 ++-- .../Special/Converters/EnumStringConverter.cs | 6 +++--- .../Special/Converters/ListStringConverter.cs | 8 ++++---- .../Converters/NullableStringConverter.cs | 8 ++++---- .../Converters/Special/StringSerializer.cs | 16 ++++++++-------- .../PacketSerializer.cs | 4 ++-- .../BasicInlineConverterGenerator.cs | 4 ++-- .../BoolInlineConverterGenerator.cs | 4 ++-- .../EnumInlineConverterGenerator.cs | 4 ++-- .../FallbackInlineConverterGenerator.cs | 4 ++-- .../ListInlineConverterGenerator.cs | 4 ++-- .../StringInlineConverterGenerator.cs | 4 ++-- .../PacketConverterGenerator.cs | 4 ++-- .../Converters/Basic/BoolStringConverterTests.cs | 8 ++++---- .../Converters/Basic/StringConverterTests.cs | 6 +++--- 24 files changed, 72 insertions(+), 72 deletions(-) diff --git a/Packets/NosSmooth.PacketSerializer.Abstractions/BaseStringConverter.cs b/Packets/NosSmooth.PacketSerializer.Abstractions/BaseStringConverter.cs index 94a98e7..672fa70 100644 --- a/Packets/NosSmooth.PacketSerializer.Abstractions/BaseStringConverter.cs +++ b/Packets/NosSmooth.PacketSerializer.Abstractions/BaseStringConverter.cs @@ -16,15 +16,15 @@ namespace NosSmooth.PacketSerializer.Abstractions; public abstract class BaseStringConverter : IStringConverter { /// - public abstract Result Serialize(TParseType? obj, ref PacketStringBuilder builder); + public abstract Result Serialize(TParseType? obj, in PacketStringBuilder builder); /// - public abstract Result Deserialize(ref PacketStringEnumerator stringEnumerator, DeserializeOptions options); + public abstract Result Deserialize(in PacketStringEnumerator stringEnumerator, DeserializeOptions options); /// - Result IStringConverter.Deserialize(ref PacketStringEnumerator stringEnumerator, DeserializeOptions options) + Result IStringConverter.Deserialize(in PacketStringEnumerator stringEnumerator, DeserializeOptions options) { - var result = Deserialize(ref stringEnumerator, options); + var result = Deserialize(in stringEnumerator, options); if (!result.IsSuccess) { return Result.FromError(result); @@ -34,13 +34,13 @@ public abstract class BaseStringConverter : IStringConverter - Result IStringConverter.Serialize(object? obj, ref PacketStringBuilder builder) + Result IStringConverter.Serialize(object? obj, in PacketStringBuilder builder) { if (!(obj is TParseType parseType)) { return new WrongTypeError(this, typeof(TParseType), obj); } - return Serialize(parseType, ref builder); + return Serialize(parseType, in builder); } } diff --git a/Packets/NosSmooth.PacketSerializer.Abstractions/IStringConverter.cs b/Packets/NosSmooth.PacketSerializer.Abstractions/IStringConverter.cs index 584ee9d..221a591 100644 --- a/Packets/NosSmooth.PacketSerializer.Abstractions/IStringConverter.cs +++ b/Packets/NosSmooth.PacketSerializer.Abstractions/IStringConverter.cs @@ -19,7 +19,7 @@ public interface IStringConverter /// The packet string enumerator with the current position. /// The deserialization options. /// The parsed object or an error. - public Result Deserialize(ref PacketStringEnumerator stringEnumerator, DeserializeOptions options); + public Result Deserialize(in PacketStringEnumerator stringEnumerator, DeserializeOptions options); /// /// Serializes the given object to string by appending to the packet string builder. @@ -27,7 +27,7 @@ public interface IStringConverter /// The object to serialize. /// The string builder to append to. /// A result that may or may not have succeeded. - public Result Serialize(object? obj, ref PacketStringBuilder builder); + public Result Serialize(object? obj, in PacketStringBuilder builder); } /// @@ -45,7 +45,7 @@ public interface IStringConverter : IStringConverter /// The packet string enumerator with the current position. /// The deserialization options. /// The parsed object or an error. - public new Result Deserialize(ref PacketStringEnumerator stringEnumerator, DeserializeOptions options); + public new Result Deserialize(in PacketStringEnumerator stringEnumerator, DeserializeOptions options); /// /// Serializes the given object to string by appending to the packet string builder. @@ -53,5 +53,5 @@ public interface IStringConverter : IStringConverter /// The object to serialize. /// The string builder to append to. /// A result that may or may not have succeeded. - public Result Serialize(TParseType? obj, ref PacketStringBuilder builder); + public Result Serialize(TParseType? obj, in PacketStringBuilder builder); } \ No newline at end of file diff --git a/Packets/NosSmooth.PacketSerializer.Abstractions/IStringSerializer.cs b/Packets/NosSmooth.PacketSerializer.Abstractions/IStringSerializer.cs index 99a1741..cd4cc96 100644 --- a/Packets/NosSmooth.PacketSerializer.Abstractions/IStringSerializer.cs +++ b/Packets/NosSmooth.PacketSerializer.Abstractions/IStringSerializer.cs @@ -20,7 +20,7 @@ public interface IStringSerializer /// The packet string enumerator with the current position. /// The deserialization options. /// The parsed object or an error. - public Result Deserialize(Type parseType, ref PacketStringEnumerator stringEnumerator, DeserializeOptions options); + public Result Deserialize(Type parseType, in PacketStringEnumerator stringEnumerator, DeserializeOptions options); /// /// Serializes the given object to string by appending to the packet string builder. @@ -29,7 +29,7 @@ public interface IStringSerializer /// The object to serialize. /// The string builder to append to. /// A result that may or may not have succeeded. - public Result Serialize(Type parseType, object? obj, ref PacketStringBuilder builder); + public Result Serialize(Type parseType, object? obj, in PacketStringBuilder builder); /// /// Convert the data from the enumerator to the given type. @@ -38,7 +38,7 @@ public interface IStringSerializer /// The type of the object to serialize. /// The deserialization options. /// The parsed object or an error. - public Result Deserialize(ref PacketStringEnumerator stringEnumerator, DeserializeOptions options); + public Result Deserialize(in PacketStringEnumerator stringEnumerator, DeserializeOptions options); /// /// Serializes the given object to string by appending to the packet string builder. @@ -47,5 +47,5 @@ public interface IStringSerializer /// The string builder to append to. /// The type of the object to deserialize. /// A result that may or may not have succeeded. - public Result Serialize(TParseType? obj, ref PacketStringBuilder builder); + public Result Serialize(TParseType? obj, in PacketStringBuilder builder); } \ No newline at end of file diff --git a/Packets/NosSmooth.PacketSerializer/Converters/Basic/BasicTypeConverter.cs b/Packets/NosSmooth.PacketSerializer/Converters/Basic/BasicTypeConverter.cs index f0f182d..1e51ba8 100644 --- a/Packets/NosSmooth.PacketSerializer/Converters/Basic/BasicTypeConverter.cs +++ b/Packets/NosSmooth.PacketSerializer/Converters/Basic/BasicTypeConverter.cs @@ -17,14 +17,14 @@ namespace NosSmooth.PacketSerializer.Converters.Basic; public abstract class BasicTypeConverter : BaseStringConverter { /// - public override Result Serialize(TBasicType? obj, ref PacketStringBuilder builder) + public override Result Serialize(TBasicType? obj, in PacketStringBuilder builder) { builder.Append(obj?.ToString() ?? GetNullSymbol()); return Result.FromSuccess(); } /// - public override Result Deserialize(ref PacketStringEnumerator stringEnumerator, DeserializeOptions options) + public override Result Deserialize(in PacketStringEnumerator stringEnumerator, DeserializeOptions options) { var nextTokenResult = stringEnumerator.GetNextToken(out var packetToken); if (!nextTokenResult.IsSuccess) diff --git a/Packets/NosSmooth.PacketSerializer/Converters/Basic/BoolStringConverter.cs b/Packets/NosSmooth.PacketSerializer/Converters/Basic/BoolStringConverter.cs index 2ef932a..df2180d 100644 --- a/Packets/NosSmooth.PacketSerializer/Converters/Basic/BoolStringConverter.cs +++ b/Packets/NosSmooth.PacketSerializer/Converters/Basic/BoolStringConverter.cs @@ -16,7 +16,7 @@ namespace NosSmooth.PacketSerializer.Converters.Basic; public class BoolStringConverter : BasicTypeConverter { /// - public override Result Serialize(bool obj, ref PacketStringBuilder builder) + public override Result Serialize(bool obj, in PacketStringBuilder builder) { builder.Append(obj ? '1' : '0'); return Result.FromSuccess(); diff --git a/Packets/NosSmooth.PacketSerializer/Converters/Basic/SpanFormattableTypeConverter.cs b/Packets/NosSmooth.PacketSerializer/Converters/Basic/SpanFormattableTypeConverter.cs index 8530330..a5eb583 100644 --- a/Packets/NosSmooth.PacketSerializer/Converters/Basic/SpanFormattableTypeConverter.cs +++ b/Packets/NosSmooth.PacketSerializer/Converters/Basic/SpanFormattableTypeConverter.cs @@ -18,7 +18,7 @@ public abstract class SpanFormattableTypeConverter : BasicTypeConverter where T : ISpanFormattable { /// - public override Result Serialize(T? obj, ref PacketStringBuilder builder) + public override Result Serialize(T? obj, in PacketStringBuilder builder) { if (obj is not null) { diff --git a/Packets/NosSmooth.PacketSerializer/Converters/Common/NameStringConverter.cs b/Packets/NosSmooth.PacketSerializer/Converters/Common/NameStringConverter.cs index 7941e8d..2c43eae 100644 --- a/Packets/NosSmooth.PacketSerializer/Converters/Common/NameStringConverter.cs +++ b/Packets/NosSmooth.PacketSerializer/Converters/Common/NameStringConverter.cs @@ -16,7 +16,7 @@ namespace NosSmooth.PacketSerializer.Converters.Common; public class NameStringConverter : BaseStringConverter { /// - public override Result Serialize(NameString? obj, ref PacketStringBuilder builder) + public override Result Serialize(NameString? obj, in PacketStringBuilder builder) { if (obj is null) { @@ -29,7 +29,7 @@ public class NameStringConverter : BaseStringConverter } /// - public override Result Deserialize(ref PacketStringEnumerator stringEnumerator, DeserializeOptions options) + public override Result Deserialize(in PacketStringEnumerator stringEnumerator, DeserializeOptions options) { var tokenResult = stringEnumerator.GetNextToken(out var packetToken); if (!tokenResult.IsSuccess) diff --git a/Packets/NosSmooth.PacketSerializer/Converters/Common/NullableWrapperConverter.cs b/Packets/NosSmooth.PacketSerializer/Converters/Common/NullableWrapperConverter.cs index e27adc7..22b5778 100644 --- a/Packets/NosSmooth.PacketSerializer/Converters/Common/NullableWrapperConverter.cs +++ b/Packets/NosSmooth.PacketSerializer/Converters/Common/NullableWrapperConverter.cs @@ -28,7 +28,7 @@ public class NullableWrapperConverter : BaseStringConverter - public override Result Serialize(NullableWrapper obj, ref PacketStringBuilder builder) + public override Result Serialize(NullableWrapper obj, in PacketStringBuilder builder) { if (obj.Value is null) { @@ -42,14 +42,14 @@ public class NullableWrapperConverter : BaseStringConverter - public override Result> Deserialize(ref PacketStringEnumerator stringEnumerator, DeserializeOptions options) + public override Result> Deserialize(in PacketStringEnumerator stringEnumerator, DeserializeOptions options) { var tokenResult = stringEnumerator.GetNextToken(out var packetToken, false); if (!tokenResult.IsSuccess) @@ -68,7 +68,7 @@ public class NullableWrapperConverter : BaseStringConverter>.FromError(converterResult); } - var deserializationResult = converter.Deserialize(ref stringEnumerator, new DeserializeOptions(true)); + var deserializationResult = converter.Deserialize(in stringEnumerator, new DeserializeOptions(true)); if (!deserializationResult.IsDefined(out var deserialization)) { return Result>.FromError(deserializationResult); diff --git a/Packets/NosSmooth.PacketSerializer/Converters/Common/OptionalWrapperConverter.cs b/Packets/NosSmooth.PacketSerializer/Converters/Common/OptionalWrapperConverter.cs index 04c5cdc..1e51bf1 100644 --- a/Packets/NosSmooth.PacketSerializer/Converters/Common/OptionalWrapperConverter.cs +++ b/Packets/NosSmooth.PacketSerializer/Converters/Common/OptionalWrapperConverter.cs @@ -28,7 +28,7 @@ public class OptionalWrapperConverter : BaseStringConverter - public override Result Serialize(OptionalWrapper obj, ref PacketStringBuilder builder) + public override Result Serialize(OptionalWrapper obj, in PacketStringBuilder builder) { if (obj.Value is null) { @@ -41,12 +41,12 @@ public class OptionalWrapperConverter : BaseStringConverter - public override Result> Deserialize(ref PacketStringEnumerator stringEnumerator, DeserializeOptions options) + public override Result> Deserialize(in PacketStringEnumerator stringEnumerator, DeserializeOptions options) { if (stringEnumerator.IsOnLastToken() ?? false) { @@ -71,7 +71,7 @@ public class OptionalWrapperConverter : BaseStringConverter>.FromError(converterResult); } - var deserializationResult = converter.Deserialize(ref stringEnumerator, new DeserializeOptions(true)); + var deserializationResult = converter.Deserialize(in stringEnumerator, new DeserializeOptions(true)); if (!deserializationResult.IsDefined(out var deserialization)) { return Result>.FromError(deserializationResult); diff --git a/Packets/NosSmooth.PacketSerializer/Converters/Packets/UpgradeRareSubPacketConverter.cs b/Packets/NosSmooth.PacketSerializer/Converters/Packets/UpgradeRareSubPacketConverter.cs index 6313255..cb1fa61 100644 --- a/Packets/NosSmooth.PacketSerializer/Converters/Packets/UpgradeRareSubPacketConverter.cs +++ b/Packets/NosSmooth.PacketSerializer/Converters/Packets/UpgradeRareSubPacketConverter.cs @@ -18,7 +18,7 @@ namespace NosSmooth.PacketSerializer.Converters.Packets; public class UpgradeRareSubPacketConverter : BaseStringConverter { /// - public override Result Serialize(UpgradeRareSubPacket? obj, ref PacketStringBuilder builder) + public override Result Serialize(UpgradeRareSubPacket? obj, in PacketStringBuilder builder) { if (obj is null) { @@ -31,7 +31,7 @@ public class UpgradeRareSubPacketConverter : BaseStringConverter - public override Result Deserialize(ref PacketStringEnumerator stringEnumerator, DeserializeOptions options) + public override Result Deserialize(in PacketStringEnumerator stringEnumerator, DeserializeOptions options) { var tokenResult = stringEnumerator.GetNextToken(out var packetToken); if (!tokenResult.IsSuccess) diff --git a/Packets/NosSmooth.PacketSerializer/Converters/Special/Converters/EnumStringConverter.cs b/Packets/NosSmooth.PacketSerializer/Converters/Special/Converters/EnumStringConverter.cs index 12ea792..d715f46 100644 --- a/Packets/NosSmooth.PacketSerializer/Converters/Special/Converters/EnumStringConverter.cs +++ b/Packets/NosSmooth.PacketSerializer/Converters/Special/Converters/EnumStringConverter.cs @@ -28,16 +28,16 @@ public class EnumStringConverter : BaseStringConverter - public override Result Serialize(TEnum? obj, ref PacketStringBuilder builder) + public override Result Serialize(TEnum? obj, in PacketStringBuilder builder) { builder.Append(((TUnderlyingType?)(object?)obj)?.ToString() ?? "-"); return Result.FromSuccess(); } /// - public override Result Deserialize(ref PacketStringEnumerator stringEnumerator, DeserializeOptions options) + public override Result Deserialize(in PacketStringEnumerator stringEnumerator, DeserializeOptions options) { - var result = _serializer.Deserialize(ref stringEnumerator, options); + var result = _serializer.Deserialize(in stringEnumerator, options); if (!result.IsSuccess) { return Result.FromError(result); diff --git a/Packets/NosSmooth.PacketSerializer/Converters/Special/Converters/ListStringConverter.cs b/Packets/NosSmooth.PacketSerializer/Converters/Special/Converters/ListStringConverter.cs index 96c2d25..e8c8957 100644 --- a/Packets/NosSmooth.PacketSerializer/Converters/Special/Converters/ListStringConverter.cs +++ b/Packets/NosSmooth.PacketSerializer/Converters/Special/Converters/ListStringConverter.cs @@ -29,7 +29,7 @@ public class ListStringConverter : BaseStringConverter - public override Result Serialize(IReadOnlyList? obj, ref PacketStringBuilder builder) + public override Result Serialize(IReadOnlyList? obj, in PacketStringBuilder builder) { if (obj is null) { @@ -44,7 +44,7 @@ public class ListStringConverter : BaseStringConverter : BaseStringConverter - public override Result?> Deserialize(ref PacketStringEnumerator stringEnumerator, DeserializeOptions options) + public override Result?> Deserialize(in PacketStringEnumerator stringEnumerator, DeserializeOptions options) { var list = new List(); @@ -68,7 +68,7 @@ public class ListStringConverter : BaseStringConverter(ref stringEnumerator, default); + var result = _serializer.Deserialize(in stringEnumerator, default); // If we know that we are not on the last token in the item level, just skip to the end of the item. // Note that if this is the case, then that means the converter is either corrupted diff --git a/Packets/NosSmooth.PacketSerializer/Converters/Special/Converters/NullableStringConverter.cs b/Packets/NosSmooth.PacketSerializer/Converters/Special/Converters/NullableStringConverter.cs index 435ed94..29a6041 100644 --- a/Packets/NosSmooth.PacketSerializer/Converters/Special/Converters/NullableStringConverter.cs +++ b/Packets/NosSmooth.PacketSerializer/Converters/Special/Converters/NullableStringConverter.cs @@ -31,7 +31,7 @@ public class NullableStringConverter : BaseStringConverter> } /// - public override Result Serialize(T? obj, ref PacketStringBuilder builder) + public override Result Serialize(T? obj, in PacketStringBuilder builder) { if (obj is null) { @@ -39,11 +39,11 @@ public class NullableStringConverter : BaseStringConverter> return Result.FromSuccess(); } - return _stringSerializer.Serialize(obj.Value, ref builder); + return _stringSerializer.Serialize(obj.Value, in builder); } /// - public override Result Deserialize(ref PacketStringEnumerator stringEnumerator, DeserializeOptions options) + public override Result Deserialize(in PacketStringEnumerator stringEnumerator, DeserializeOptions options) { var nextToken = stringEnumerator.GetNextToken(out var packetToken, false); if (!nextToken.IsSuccess) @@ -63,7 +63,7 @@ public class NullableStringConverter : BaseStringConverter> } } - var result = _stringSerializer.Deserialize(ref stringEnumerator, options); + var result = _stringSerializer.Deserialize(in stringEnumerator, options); if (!result.IsSuccess) { return Result.FromError(result); diff --git a/Packets/NosSmooth.PacketSerializer/Converters/Special/StringSerializer.cs b/Packets/NosSmooth.PacketSerializer/Converters/Special/StringSerializer.cs index f5eedc9..1d2429c 100644 --- a/Packets/NosSmooth.PacketSerializer/Converters/Special/StringSerializer.cs +++ b/Packets/NosSmooth.PacketSerializer/Converters/Special/StringSerializer.cs @@ -25,7 +25,7 @@ public class StringSerializer : IStringSerializer } /// - public Result Deserialize(Type parseType, ref PacketStringEnumerator stringEnumerator, DeserializeOptions options) + public Result Deserialize(Type parseType, in PacketStringEnumerator stringEnumerator, DeserializeOptions options) { var converterResult = _converterRepository.GetTypeConverter(parseType); if (!converterResult.IsSuccess) @@ -33,7 +33,7 @@ public class StringSerializer : IStringSerializer return Result.FromError(converterResult); } - var deserializedResult = converterResult.Entity.Deserialize(ref stringEnumerator, options); + var deserializedResult = converterResult.Entity.Deserialize(in stringEnumerator, options); if (!deserializedResult.IsSuccess) { return Result.FromError(deserializedResult); @@ -43,7 +43,7 @@ public class StringSerializer : IStringSerializer } /// - public Result Serialize(Type parseType, object? obj, ref PacketStringBuilder builder) + public Result Serialize(Type parseType, object? obj, in PacketStringBuilder builder) { var converterResult = _converterRepository.GetTypeConverter(parseType); if (!converterResult.IsSuccess) @@ -51,11 +51,11 @@ public class StringSerializer : IStringSerializer return Result.FromError(converterResult); } - return converterResult.Entity.Serialize(obj, ref builder); + return converterResult.Entity.Serialize(obj, in builder); } /// - public Result Deserialize(ref PacketStringEnumerator stringEnumerator, DeserializeOptions options) + public Result Deserialize(in PacketStringEnumerator stringEnumerator, DeserializeOptions options) { var converterResult = _converterRepository.GetTypeConverter(); if (!converterResult.IsSuccess) @@ -63,11 +63,11 @@ public class StringSerializer : IStringSerializer return Result.FromError(converterResult); } - return converterResult.Entity.Deserialize(ref stringEnumerator, options); + return converterResult.Entity.Deserialize(in stringEnumerator, options); } /// - public Result Serialize(TParseType? obj, ref PacketStringBuilder builder) + public Result Serialize(TParseType? obj, in PacketStringBuilder builder) { var converterResult = _converterRepository.GetTypeConverter(); if (!converterResult.IsSuccess) @@ -75,6 +75,6 @@ public class StringSerializer : IStringSerializer return Result.FromError(converterResult); } - return converterResult.Entity.Serialize(obj, ref builder); + return converterResult.Entity.Serialize(obj, in builder); } } \ No newline at end of file diff --git a/Packets/NosSmooth.PacketSerializer/PacketSerializer.cs b/Packets/NosSmooth.PacketSerializer/PacketSerializer.cs index 7f30679..9def170 100644 --- a/Packets/NosSmooth.PacketSerializer/PacketSerializer.cs +++ b/Packets/NosSmooth.PacketSerializer/PacketSerializer.cs @@ -48,7 +48,7 @@ public class PacketSerializer : IPacketSerializer } stringBuilder.Append(info.Header); - var serializeResult = info.PacketConverter.Serialize(obj, ref stringBuilder); + var serializeResult = info.PacketConverter.Serialize(obj, in stringBuilder); if (!serializeResult.IsSuccess) { return Result.FromError(serializeResult); @@ -74,7 +74,7 @@ public class PacketSerializer : IPacketSerializer } var packetInfo = packetInfoResult.Entity; - var deserializedResult = packetInfo.PacketConverter.Deserialize(ref packetStringEnumerator, default); + var deserializedResult = packetInfo.PacketConverter.Deserialize(in packetStringEnumerator, default); if (!deserializedResult.IsSuccess) { return Result.FromError(deserializedResult); diff --git a/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/BasicInlineConverterGenerator.cs b/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/BasicInlineConverterGenerator.cs index 1964e73..445e22a 100644 --- a/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/BasicInlineConverterGenerator.cs +++ b/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/BasicInlineConverterGenerator.cs @@ -57,7 +57,7 @@ public class BasicInlineConverterGenerator : IInlineConverterGenerator throw new Exception("TypeSyntax or TypeSymbol has to be non null."); } - textWriter.WriteLine($"{Constants.HelperClass}.ParseBasic{type}(typeConverter, ref stringEnumerator, {nullable.ToString().ToLower()});"); + textWriter.WriteLine($"{Constants.HelperClass}.ParseBasic{type}(typeConverter, in stringEnumerator, {nullable.ToString().ToLower()});"); return null; } @@ -67,7 +67,7 @@ public class BasicInlineConverterGenerator : IInlineConverterGenerator foreach (var type in HandleTypes) { textWriter.WriteMultiline($@" -public static Result<{type}?> ParseBasic{type}(IStringConverter typeConverter, ref PacketStringEnumerator stringEnumerator, bool nullable) +public static Result<{type}?> ParseBasic{type}(IStringConverter typeConverter, in PacketStringEnumerator stringEnumerator, bool nullable) {{ var tokenResult = stringEnumerator.GetNextToken(out var packetToken); if (!tokenResult.IsSuccess) diff --git a/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/BoolInlineConverterGenerator.cs b/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/BoolInlineConverterGenerator.cs index d6ee03b..b4f2049 100644 --- a/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/BoolInlineConverterGenerator.cs +++ b/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/BoolInlineConverterGenerator.cs @@ -44,7 +44,7 @@ public class BoolInlineConverterGenerator : IInlineConverterGenerator /// public IError? CallDeserialize(IndentedTextWriter textWriter, TypeSyntax? typeSyntax, ITypeSymbol? typeSymbol, bool nullable) { - textWriter.WriteLine($"{Constants.HelperClass}.ParseBool(ref stringEnumerator, {nullable.ToString().ToLower()});"); + textWriter.WriteLine($"{Constants.HelperClass}.ParseBool(in stringEnumerator, {nullable.ToString().ToLower()});"); return null; } @@ -52,7 +52,7 @@ public class BoolInlineConverterGenerator : IInlineConverterGenerator public void GenerateHelperMethods(IndentedTextWriter textWriter) { textWriter.WriteLine(@" -public static Result ParseBool(ref PacketStringEnumerator stringEnumerator, bool nullable) +public static Result ParseBool(in PacketStringEnumerator stringEnumerator, bool nullable) {{ var tokenResult = stringEnumerator.GetNextToken(out var packetToken); if (!tokenResult.IsSuccess) diff --git a/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/EnumInlineConverterGenerator.cs b/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/EnumInlineConverterGenerator.cs index 738816f..303c3b4 100644 --- a/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/EnumInlineConverterGenerator.cs +++ b/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/EnumInlineConverterGenerator.cs @@ -66,7 +66,7 @@ public class EnumInlineConverterGenerator : IInlineConverterGenerator textWriter.WriteLine ( - $"{Constants.HelperClass}.ParseEnum{typeSymbol?.ToString().TrimEnd('?').Replace('.', '_')}(typeConverter, ref stringEnumerator, {nullable.ToString().ToLower()});" + $"{Constants.HelperClass}.ParseEnum{typeSymbol?.ToString().TrimEnd('?').Replace('.', '_')}(typeConverter, in stringEnumerator, {nullable.ToString().ToLower()});" ); return null; } @@ -80,7 +80,7 @@ public class EnumInlineConverterGenerator : IInlineConverterGenerator textWriter.WriteMultiline ( $@" -public static Result<{type}?> ParseEnum{type.ToString().Replace('.', '_')}(IStringConverter typeConverter, ref PacketStringEnumerator stringEnumerator, bool nullable) +public static Result<{type}?> ParseEnum{type.ToString().Replace('.', '_')}(IStringConverter typeConverter, in PacketStringEnumerator stringEnumerator, bool nullable) {{ var tokenResult = stringEnumerator.GetNextToken(out var packetToken); if (!tokenResult.IsSuccess) diff --git a/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/FallbackInlineConverterGenerator.cs b/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/FallbackInlineConverterGenerator.cs index dd760f2..437de90 100644 --- a/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/FallbackInlineConverterGenerator.cs +++ b/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/FallbackInlineConverterGenerator.cs @@ -32,7 +32,7 @@ public class FallbackInlineConverterGenerator : IInlineConverterGenerator var resultName = $"{variableName.Replace(".", string.Empty)}Result"; textWriter.WriteLine ( - $"var {resultName} = _stringSerializer.Serialize<{(typeSyntax?.ToString() ?? typeSymbol!.ToString()).TrimEnd('?')}?>({variableName}, ref builder);" + $"var {resultName} = _stringSerializer.Serialize<{(typeSyntax?.ToString() ?? typeSymbol!.ToString()).TrimEnd('?')}?>({variableName}, in builder);" ); textWriter.WriteLine($"if (!{resultName}.IsSuccess)"); textWriter.WriteLine("{"); @@ -49,7 +49,7 @@ public class FallbackInlineConverterGenerator : IInlineConverterGenerator var options = nullable ? "DeserializeOptions.Nullable" : "default"; textWriter.WriteLine ( - $"_stringSerializer.Deserialize<{(typeSyntax?.ToString() ?? typeSymbol!.ToString()).TrimEnd('?')}?>(ref stringEnumerator, {options});" + $"_stringSerializer.Deserialize<{(typeSyntax?.ToString() ?? typeSymbol!.ToString()).TrimEnd('?')}?>(in stringEnumerator, {options});" ); return null; } diff --git a/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/ListInlineConverterGenerator.cs b/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/ListInlineConverterGenerator.cs index 2a9610a..e19a852 100644 --- a/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/ListInlineConverterGenerator.cs +++ b/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/ListInlineConverterGenerator.cs @@ -89,7 +89,7 @@ public class ListInlineConverterGenerator : IInlineConverterGenerator } textWriter.WriteLine - ($"{Constants.HelperClass}.{GetMethodName(genericArgument, nullable)}(typeConverter, _stringSerializer, ref stringEnumerator);"); + ($"{Constants.HelperClass}.{GetMethodName(genericArgument, nullable)}(typeConverter, _stringSerializer, in stringEnumerator);"); return null; } @@ -106,7 +106,7 @@ public class ListInlineConverterGenerator : IInlineConverterGenerator textWriter.WriteLine ( @$" -public static Result> {GetMethodName(type, nullable)}(IStringConverter typeConverter, IStringSerializer _stringSerializer, ref PacketStringEnumerator stringEnumerator) +public static Result> {GetMethodName(type, nullable)}(IStringConverter typeConverter, IStringSerializer _stringSerializer, in PacketStringEnumerator stringEnumerator) {{ var data = new List<{type.GetActualType()}>(); diff --git a/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/StringInlineConverterGenerator.cs b/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/StringInlineConverterGenerator.cs index 611e081..12fa4cf 100644 --- a/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/StringInlineConverterGenerator.cs +++ b/Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/StringInlineConverterGenerator.cs @@ -30,7 +30,7 @@ public class StringInlineConverterGenerator : IInlineConverterGenerator /// public IError? CallDeserialize(IndentedTextWriter textWriter, TypeSyntax? typeSyntax, ITypeSymbol? typeSymbol, bool nullable) { - textWriter.WriteLine($"{Constants.HelperClass}.ParseString(ref stringEnumerator, {nullable.ToString().ToLower()});"); + textWriter.WriteLine($"{Constants.HelperClass}.ParseString(in stringEnumerator, {nullable.ToString().ToLower()});"); return null; } @@ -40,7 +40,7 @@ public class StringInlineConverterGenerator : IInlineConverterGenerator textWriter.WriteLine ( @" -public static Result ParseString(ref PacketStringEnumerator stringEnumerator, bool nullable) +public static Result ParseString(in PacketStringEnumerator stringEnumerator, bool nullable) {{ var tokenResult = stringEnumerator.GetNextToken(out var packetToken); if (!tokenResult.IsSuccess) diff --git a/Packets/NosSmooth.PacketSerializersGenerator/PacketConverterGenerator.cs b/Packets/NosSmooth.PacketSerializersGenerator/PacketConverterGenerator.cs index 5a43051..9983b55 100644 --- a/Packets/NosSmooth.PacketSerializersGenerator/PacketConverterGenerator.cs +++ b/Packets/NosSmooth.PacketSerializersGenerator/PacketConverterGenerator.cs @@ -75,7 +75,7 @@ public {_packetInfo.Name}Converter(IStringSerializer stringSerializer) }} /// -public override Result Serialize({_packetInfo.Name}? obj, ref PacketStringBuilder builder) +public override Result Serialize({_packetInfo.Name}? obj, in PacketStringBuilder builder) {{ if (obj is null) {{ @@ -97,7 +97,7 @@ public override Result Serialize({_packetInfo.Name}? obj, ref PacketStringBuilde }} /// -public override Result<{_packetInfo.Name}?> Deserialize(ref PacketStringEnumerator stringEnumerator, DeserializeOptions options) +public override Result<{_packetInfo.Name}?> Deserialize(in PacketStringEnumerator stringEnumerator, DeserializeOptions options) {{ var typeConverter = this; " diff --git a/Tests/NosSmooth.Packets.Tests/Converters/Basic/BoolStringConverterTests.cs b/Tests/NosSmooth.Packets.Tests/Converters/Basic/BoolStringConverterTests.cs index e5f1429..6a5b111 100644 --- a/Tests/NosSmooth.Packets.Tests/Converters/Basic/BoolStringConverterTests.cs +++ b/Tests/NosSmooth.Packets.Tests/Converters/Basic/BoolStringConverterTests.cs @@ -39,7 +39,7 @@ public class BoolStringConverterTests { bool? test = null; var stringBuilder = new PacketStringBuilder(stackalloc char[500]); - var serializeResult = _stringSerializer.Serialize(test, ref stringBuilder); + var serializeResult = _stringSerializer.Serialize(test, in stringBuilder); Assert.True(serializeResult.IsSuccess, !serializeResult.IsSuccess ? serializeResult.Error.Message : string.Empty); Assert.Equal("-1", stringBuilder.ToString()); } @@ -52,7 +52,7 @@ public class BoolStringConverterTests { var deserialize = "-1"; var stringEnumerator = new PacketStringEnumerator(deserialize); - var deserializeResult = _stringSerializer.Deserialize(ref stringEnumerator, DeserializeOptions.Nullable); + var deserializeResult = _stringSerializer.Deserialize(in stringEnumerator, DeserializeOptions.Nullable); Assert.True(deserializeResult.IsSuccess, !deserializeResult.IsSuccess ? deserializeResult.Error.Message : string.Empty); Assert.Null(deserializeResult.Entity); } @@ -65,7 +65,7 @@ public class BoolStringConverterTests { var deserialize = "1"; var stringEnumerator = new PacketStringEnumerator(deserialize); - var deserializeResult = _stringSerializer.Deserialize(ref stringEnumerator, default); + var deserializeResult = _stringSerializer.Deserialize(in stringEnumerator, default); Assert.True(deserializeResult.IsSuccess, !deserializeResult.IsSuccess ? deserializeResult.Error.Message : string.Empty); Assert.True(deserializeResult.Entity); } @@ -78,7 +78,7 @@ public class BoolStringConverterTests { var deserialize = "0"; var stringEnumerator = new PacketStringEnumerator(deserialize); - var deserializeResult = _stringSerializer.Deserialize(ref stringEnumerator, default); + var deserializeResult = _stringSerializer.Deserialize(in stringEnumerator, default); Assert.True(deserializeResult.IsSuccess, !deserializeResult.IsSuccess ? deserializeResult.Error.Message : string.Empty); Assert.False(deserializeResult.Entity); } diff --git a/Tests/NosSmooth.Packets.Tests/Converters/Basic/StringConverterTests.cs b/Tests/NosSmooth.Packets.Tests/Converters/Basic/StringConverterTests.cs index 5e8347f..8a22a42 100644 --- a/Tests/NosSmooth.Packets.Tests/Converters/Basic/StringConverterTests.cs +++ b/Tests/NosSmooth.Packets.Tests/Converters/Basic/StringConverterTests.cs @@ -39,7 +39,7 @@ public class StringConverterTests { string? test = null; var stringBuilder = new PacketStringBuilder(stackalloc char[500]); - var serializeResult = _stringSerializer.Serialize(test, ref stringBuilder); + var serializeResult = _stringSerializer.Serialize(test, in stringBuilder); Assert.True(serializeResult.IsSuccess, !serializeResult.IsSuccess ? serializeResult.Error.Message : string.Empty); Assert.Equal("-", stringBuilder.ToString()); } @@ -52,7 +52,7 @@ public class StringConverterTests { var deserialize = "-"; var stringEnumerator = new PacketStringEnumerator(deserialize); - var deserializeResult = _stringSerializer.Deserialize(ref stringEnumerator, DeserializeOptions.Nullable); + var deserializeResult = _stringSerializer.Deserialize(in stringEnumerator, DeserializeOptions.Nullable); Assert.True(deserializeResult.IsSuccess, !deserializeResult.IsSuccess ? deserializeResult.Error.Message : string.Empty); Assert.Null(deserializeResult.Entity); } @@ -65,7 +65,7 @@ public class StringConverterTests { var deserialize = "-"; var stringEnumerator = new PacketStringEnumerator(deserialize); - var deserializeResult = _stringSerializer.Deserialize(ref stringEnumerator, default); + var deserializeResult = _stringSerializer.Deserialize(in stringEnumerator, default); Assert.True(deserializeResult.IsSuccess, !deserializeResult.IsSuccess ? deserializeResult.Error.Message : string.Empty); Assert.NotNull(deserializeResult.Entity); Assert.Equal("-", deserializeResult.Entity); -- 2.48.1