Skip to content

Commit 6b831f4

Browse files
committed
add extensions
1 parent 7f2bc6d commit 6b831f4

2 files changed

Lines changed: 27 additions & 1 deletion

File tree

src/Backdash/Data/ObjectPool.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
using System.Collections;
2+
using System.Runtime.CompilerServices;
3+
using System.Runtime.InteropServices;
24

35
namespace Backdash.Data;
46

@@ -99,6 +101,27 @@ public bool Return(T value)
99101
return true;
100102
}
101103

104+
/// <inheritdoc cref="Return"/>
105+
public bool ReturnMany(params T[] values)
106+
{
107+
var result = true;
108+
109+
ref var current = ref MemoryMarshal.GetReference(values.AsSpan());
110+
ref var limit = ref Unsafe.Add(ref current, values.Length);
111+
112+
while (Unsafe.IsAddressLessThan(ref current, ref limit))
113+
{
114+
result = result && Return(current);
115+
current = ref Unsafe.Add(ref current, 1)!;
116+
}
117+
118+
return result;
119+
}
120+
121+
/// <inheritdoc cref="ReturnMany(T[])"/>
122+
public bool ReturnMany(IEnumerable<T> values) =>
123+
values.Aggregate(true, (result, current) => result && Return(current));
124+
102125
/// <summary>
103126
/// Clear the object pool
104127
/// </summary>

src/Backdash/Session/INetcodeSession.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,8 +300,11 @@ bool TryGetPlayerByCustomId(int customId, [NotNullWhen(true)] out NetcodePlayer?
300300
NetcodePlayer? GetPlayerByCustomId(int customId) =>
301301
TryGetPlayerByCustomId(customId, out var player) ? player : null;
302302

303-
/// <inheritdoc cref="TryGetPlayerByCustomId"/>
303+
/// <inheritdoc cref="TryGetLocalPlayer"/>
304304
NetcodePlayer? GetLocalPlayer() => TryGetLocalPlayer(out var player) ? player : null;
305+
306+
/// <inheritdoc cref="TryGetRemotePlayer"/>
307+
NetcodePlayer? GetRemotePlayer() => TryGetRemotePlayer(out var player) ? player : null;
305308
}
306309

307310
/// <summary>

0 commit comments

Comments
 (0)