Skip to content

Commit 7d16201

Browse files
refactor: update arrays reading (#10)
* refactor: update arrays reading * refactor: remove duplicated method ToPacketWithMarshal
1 parent 1f83502 commit 7d16201

32 files changed

+111
-367
lines changed

F1Game.UDP.Benchmarks/InternalBenchmark.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,6 @@ public UnionPacket ReadF1GameUDPReader()
4545
[Benchmark(Baseline = true)]
4646
public UnionPacket ReadF1GameUDPMarshal()
4747
{
48-
return data.ToPacketWithMarshal();
48+
return data.ToPacket();
4949
}
5050
}

F1Game.UDP.SourceGenerator.Tests/snapshots/AutoInlineArrayGeneratorTests.ArrayWithField_GeneratesArrayCode#MyCode.InlineArray.Generated.verified.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,7 @@ public override int GetHashCode()
8888
public static InlineArray Create(ReadOnlySpan<global::MyCode.Element> source)
8989
{
9090
var array = new InlineArray();
91-
for (var i = 0; i < array.Length && i < source.Length; i++)
92-
array[i] = source[i];
91+
source[..Math.Min(source.Length, 42)].CopyTo(array);
9392
return array;
9493
}
9594

F1Game.UDP.SourceGenerator.Tests/snapshots/AutoInlineArrayGeneratorTests.ArrayWithTypeInAttribute_GeneratesArrayCode#MyCode.ByteInlineArray.Generated.verified.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,7 @@ public override int GetHashCode()
9090
public static ByteInlineArray Create(ReadOnlySpan<byte> source)
9191
{
9292
var array = new ByteInlineArray();
93-
for (var i = 0; i < array.Length && i < source.Length; i++)
94-
array[i] = source[i];
93+
source[..Math.Min(source.Length, 42)].CopyTo(array);
9594
return array;
9695
}
9796

F1Game.UDP.SourceGenerator.Tests/snapshots/AutoInlineArrayGeneratorTests.GenericArrayWithInstanceField_GeneratesArrayCode#MyCode.MyInlineArray`2.Generated.verified.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,7 @@ public override int GetHashCode()
8888
public static MyInlineArray<T, T2> Create(ReadOnlySpan<T2> source)
8989
{
9090
var array = new MyInlineArray<T, T2>();
91-
for (var i = 0; i < array.Length && i < source.Length; i++)
92-
array[i] = source[i];
91+
source[..Math.Min(source.Length, 69)].CopyTo(array);
9392
return array;
9493
}
9594

F1Game.UDP.SourceGenerator.Tests/snapshots/AutoInlineArrayGeneratorTests.GenericArrayWithTypeInAttribute_GeneratesArrayCode#MyCode.MyInlineArray`3.Generated.verified.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,7 @@ public override int GetHashCode()
9090
public static MyInlineArray<T, T2, T3> Create(ReadOnlySpan<double> source)
9191
{
9292
var array = new MyInlineArray<T, T2, T3>();
93-
for (var i = 0; i < array.Length && i < source.Length; i++)
94-
array[i] = source[i];
93+
source[..Math.Min(source.Length, 69)].CopyTo(array);
9594
return array;
9695
}
9796

F1Game.UDP.SourceGenerator.Tests/snapshots/AutoInlineArrayGeneratorTests.GenericArray_GeneratesArrayCode#MyCode.MyInlineArray`1.Generated.verified.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,7 @@ public override int GetHashCode()
9090
public static MyInlineArray<T> Create(ReadOnlySpan<T> source)
9191
{
9292
var array = new MyInlineArray<T>();
93-
for (var i = 0; i < array.Length && i < source.Length; i++)
94-
array[i] = source[i];
93+
source[..Math.Min(source.Length, 69)].CopyTo(array);
9594
return array;
9695
}
9796

F1Game.UDP.SourceGenerator/AutoInlineArrayGenerator.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,7 @@ public override int GetHashCode()
183183
public static {{typeName}} Create(ReadOnlySpan<{{elementType}}> source)
184184
{
185185
var array = new {{typeName}}();
186-
for (var i = 0; i < array.Length && i < source.Length; i++)
187-
array[i] = source[i];
186+
source[..Math.Min(source.Length, {{length}})].CopyTo(array);
188187
return array;
189188
}
190189

F1Game.UDP.Tests/BytesReaderExtensionsFixture.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ public void GetNextObjects_ShouldReturnArrayOfParsedObjects()
125125
var bytes = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x02, 0x03, 0x04 };
126126
var reader = CreateBytesReader(bytes);
127127

128-
var result = reader.GetNextObjects<TestInt>(2);
128+
var result = reader.GetNextObjects<TestInt>(2).ToArray();
129129

130130
result.Should().Equal(new TestInt(0x04030201), new TestInt(0x04030205));
131131
}
@@ -147,7 +147,7 @@ public void GetNextEnums_ShouldReturnArrayOfEnums()
147147
var bytes = new byte[] { 0x01, 0x02, 0x03 };
148148
var reader = CreateBytesReader(bytes);
149149

150-
var result = reader.GetNextEnums<TestEnumByte>(3);
150+
var result = reader.GetNextEnums<TestEnumByte>(3).ToArray();
151151

152152
result.Should().Equal(TestEnumByte.One, TestEnumByte.Two, TestEnumByte.Three);
153153
}

F1Game.UDP.Tests/BytesWriterFixture.cs

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -161,27 +161,14 @@ public void WriteDouble_ShouldWriteDoubleAndChangeCurrentIndex()
161161
bytes.Should().BeEquivalentTo(expectedBytes, options => options.WithStrictOrdering());
162162
}
163163

164-
[Test]
165-
public void WriteString_ShouldWriteStringAndChangeCurrentIndex()
166-
{
167-
var expectedBytes = "Hello, World!\0"u8.ToArray();
168-
var bytes = new byte[14];
169-
var writer = new BytesWriter(bytes);
170-
171-
writer.Write("Hello, World!", 14);
172-
173-
writer.CurrentIndex.Should().Be(14);
174-
bytes.Should().BeEquivalentTo(expectedBytes, options => options.WithStrictOrdering());
175-
}
176-
177164
[Test]
178165
public void WriteObjects_ShouldWriteObjectsAndChangeCurrentIndex()
179166
{
180167
var expectedBytes = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x02, 0x03, 0x04, 0 };
181168
var bytes = new byte[9];
182169
var writer = new BytesWriter(bytes);
183170

184-
writer.Write(new TestInt[] { new(0x04030201), new(0x04030205) }.AsSpan());
171+
writer.Write(new ReadOnlySpan<TestInt>([new(0x04030201), new(0x04030205)]));
185172

186173
writer.CurrentIndex.Should().Be(8);
187174
bytes.Should().BeEquivalentTo(expectedBytes, options => options.WithStrictOrdering());
@@ -207,7 +194,7 @@ public void WriteEnums_ShouldWriteEnumsAndChangeCurrentIndex()
207194
var bytes = new byte[4];
208195
var writer = new BytesWriter(bytes);
209196

210-
writer.WriteEnums(new[] { TestByteEnum.One, TestByteEnum.Two, TestByteEnum.Three }.AsSpan());
197+
writer.WriteEnums([TestByteEnum.One, TestByteEnum.Two, TestByteEnum.Three]);
211198

212199
writer.CurrentIndex.Should().Be(3);
213200
bytes.Should().BeEquivalentTo(expectedBytes, options => options.WithStrictOrdering());

F1Game.UDP.Tests/PacketReaderFixture.cs

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ public void ReadCarDamageDataPacket()
7979

8080
bytes.ToPacket().Should().BeEquivalentTo(packet, Configure);
8181
bytes.ToPacketWithReader().Should().BeEquivalentTo(packet, Configure);
82-
bytes.ToPacketWithMarshal().Should().BeEquivalentTo(packet, Configure);
8382
}
8483

8584
[Test]
@@ -95,7 +94,6 @@ public void ReadCarSetupDataPacket()
9594

9695
bytes.ToPacket().Should().BeEquivalentTo(packet, Configure);
9796
bytes.ToPacketWithReader().Should().BeEquivalentTo(packet, Configure);
98-
bytes.ToPacketWithMarshal().Should().BeEquivalentTo(packet, Configure);
9997
}
10098

10199
[Test]
@@ -111,7 +109,6 @@ public void ReadCarStatusDataPacket()
111109

112110
bytes.ToPacket().Should().BeEquivalentTo(packet, Configure);
113111
bytes.ToPacketWithReader().Should().BeEquivalentTo(packet, Configure);
114-
bytes.ToPacketWithMarshal().Should().BeEquivalentTo(packet, Configure);
115112
}
116113

117114
[Test]
@@ -127,7 +124,6 @@ public void ReadCarTelemetryDataPacket()
127124

128125
bytes.ToPacket().Should().BeEquivalentTo(packet, Configure);
129126
bytes.ToPacketWithReader().Should().BeEquivalentTo(packet, Configure);
130-
bytes.ToPacketWithMarshal().Should().BeEquivalentTo(packet, Configure);
131127
}
132128

133129
[TestCase(EventType.ButtonStatus)]
@@ -182,7 +178,6 @@ public void ReadEventDataPacket(EventType eventType)
182178

183179
bytes.ToPacket().Should().BeEquivalentTo(packet, Configure);
184180
bytes.ToPacketWithReader().Should().BeEquivalentTo(packet, Configure);
185-
bytes.ToPacketWithMarshal().Should().BeEquivalentTo(packet, Configure);
186181
}
187182

188183
[Test]
@@ -205,7 +200,6 @@ public void ReadFinalClassificationDataPacket()
205200

206201
bytes.ToPacket().Should().BeEquivalentTo(packet, Configure);
207202
bytes.ToPacketWithReader().Should().BeEquivalentTo(packet, Configure);
208-
bytes.ToPacketWithMarshal().Should().BeEquivalentTo(packet, Configure);
209203
}
210204

211205
[Test]
@@ -221,7 +215,6 @@ public void ReadLapDataPacket()
221215

222216
bytes.ToPacket().Should().BeEquivalentTo(packet, Configure);
223217
bytes.ToPacketWithReader().Should().BeEquivalentTo(packet, Configure);
224-
bytes.ToPacketWithMarshal().Should().BeEquivalentTo(packet, Configure);
225218
}
226219

227220
[Test]
@@ -242,7 +235,6 @@ public void ReadLobbyInfoDataPacket()
242235

243236
bytes.ToPacket().Should().BeEquivalentTo(packet, Configure);
244237
bytes.ToPacketWithReader().Should().BeEquivalentTo(packet, Configure);
245-
bytes.ToPacketWithMarshal().Should().BeEquivalentTo(packet, Configure);
246238
}
247239

248240
[Test]
@@ -258,7 +250,6 @@ public void ReadMotionDataPacket()
258250

259251
bytes.ToPacket().Should().BeEquivalentTo(packet, Configure);
260252
bytes.ToPacketWithReader().Should().BeEquivalentTo(packet, Configure);
261-
bytes.ToPacketWithMarshal().Should().BeEquivalentTo(packet, Configure);
262253
}
263254

264255
[Test]
@@ -273,7 +264,6 @@ public void ReadMotionExDataPacket()
273264

274265
bytes.ToPacket().Should().BeEquivalentTo(packet, Configure);
275266
bytes.ToPacketWithReader().Should().BeEquivalentTo(packet, Configure);
276-
bytes.ToPacketWithMarshal().Should().BeEquivalentTo(packet, Configure);
277267
}
278268

279269
[Test]
@@ -294,7 +284,6 @@ public void ReadParticipantsDataPacket()
294284

295285
bytes.ToPacket().Should().BeEquivalentTo(packet, Configure);
296286
bytes.ToPacketWithReader().Should().BeEquivalentTo(packet, Configure);
297-
bytes.ToPacketWithMarshal().Should().BeEquivalentTo(packet, Configure);
298287
}
299288

300289
[Test]
@@ -312,7 +301,6 @@ public void ReadSessionDataPacket()
312301

313302
bytes.ToPacket().Should().BeEquivalentTo(packet, Configure);
314303
bytes.ToPacketWithReader().Should().BeEquivalentTo(packet, Configure);
315-
bytes.ToPacketWithMarshal().Should().BeEquivalentTo(packet, Configure);
316304
}
317305

318306
[Test]
@@ -329,7 +317,6 @@ public void ReadSessionHistoryDataPacket()
329317

330318
bytes.ToPacket().Should().BeEquivalentTo(packet, Configure);
331319
bytes.ToPacketWithReader().Should().BeEquivalentTo(packet, Configure);
332-
bytes.ToPacketWithMarshal().Should().BeEquivalentTo(packet, Configure);
333320
}
334321

335322
[Test]
@@ -345,7 +332,6 @@ public void ReadTyreSetsDataPacket()
345332

346333
bytes.ToPacket().Should().BeEquivalentTo(packet, Configure);
347334
bytes.ToPacketWithReader().Should().BeEquivalentTo(packet, Configure);
348-
bytes.ToPacketWithMarshal().Should().BeEquivalentTo(packet, Configure);
349335
}
350336

351337
[Test]
@@ -359,7 +345,6 @@ public void ReadTimeTrialDataPacket()
359345

360346
bytes.ToPacket().Should().BeEquivalentTo(packet, Configure);
361347
bytes.ToPacketWithReader().Should().BeEquivalentTo(packet, Configure);
362-
bytes.ToPacketWithMarshal().Should().BeEquivalentTo(packet, Configure);
363348
}
364349

365350
IPostprocessComposer<T> BuildPacket<T>() where T : IHaveHeader, new()

0 commit comments

Comments
 (0)