diff --git a/src/UniTaskPlus.Unity/Packages/jp.andantetribe.unitaskplus/Runtime/Internal/StateTuple.cs b/src/UniTaskPlus.Unity/Packages/jp.andantetribe.unitaskplus/Runtime/Internal/StateTuple.cs deleted file mode 100644 index 5e46bd1..0000000 --- a/src/UniTaskPlus.Unity/Packages/jp.andantetribe.unitaskplus/Runtime/Internal/StateTuple.cs +++ /dev/null @@ -1,121 +0,0 @@ -#nullable enable - -using System.Collections.Concurrent; -using System.Runtime.CompilerServices; - -namespace UniTaskPlus.Internal -{ - /// - /// A reference tuple with a thread-safe pool. Intended for use in situations where boxing would occur with . - /// - internal static class StateTuple - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static StateTuple Create(T1 item1) => StateTuple.Create(item1); - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static StateTuple Create(T1 item1, T2 item2) => StateTuple.Create(item1, item2); - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static StateTuple Create(T1 item1, T2 item2, T3 item3) => StateTuple.Create(item1, item2, item3); - } - - internal sealed class StateTuple - { - private static readonly ConcurrentQueue> s_pool = new(); - - private T1 _item1 = default!; - - private StateTuple() - { - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static StateTuple Create(T1 item1) - { - if (s_pool.TryDequeue(out var result)) - { - result._item1 = item1; - return result; - } - return new StateTuple { _item1 = item1 }; - } - - public void Deconstruct(out T1 item1) - { - item1 = _item1; - _item1 = default!; - s_pool.Enqueue(this); - } - } - - internal sealed class StateTuple - { - private static readonly ConcurrentQueue> s_pool = new(); - - private T1 _item1 = default!; - private T2 _item2 = default!; - - private StateTuple() - { - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static StateTuple Create(T1 item1, T2 item2) - { - if (s_pool.TryDequeue(out var result)) - { - result._item1 = item1; - result._item2 = item2; - return result; - } - return new StateTuple { _item1 = item1, _item2 = item2 }; - } - - public void Deconstruct(out T1 item1, out T2 item2) - { - item1 = _item1; - item2 = _item2; - _item1 = default!; - _item2 = default!; - s_pool.Enqueue(this); - } - } - - internal sealed class StateTuple - { - private static readonly ConcurrentQueue> s_pool = new(); - - private T1 _item1 = default!; - private T2 _item2 = default!; - private T3 _item3 = default!; - - private StateTuple() - { - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static StateTuple Create(T1 item1, T2 item2, T3 item3) - { - if (s_pool.TryDequeue(out var result)) - { - result._item1 = item1; - result._item2 = item2; - result._item3 = item3; - return result; - } - return new StateTuple { _item1 = item1, _item2 = item2, _item3 = item3 }; - } - - public void Deconstruct(out T1 item1, out T2 item2, out T3 item3) - { - item1 = _item1; - item2 = _item2; - item3 = _item3; - _item1 = default!; - _item2 = default!; - _item3 = default!; - s_pool.Enqueue(this); - } - } -} \ No newline at end of file diff --git a/src/UniTaskPlus.Unity/Packages/jp.andantetribe.unitaskplus/Runtime/Internal/StateTuple.cs.meta b/src/UniTaskPlus.Unity/Packages/jp.andantetribe.unitaskplus/Runtime/Internal/StateTuple.cs.meta deleted file mode 100644 index 07b2bb5..0000000 --- a/src/UniTaskPlus.Unity/Packages/jp.andantetribe.unitaskplus/Runtime/Internal/StateTuple.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 8680a30b2d794366aba6b36c95067d6b -timeCreated: 1771836385 \ No newline at end of file diff --git a/src/UniTaskPlus.Unity/Packages/jp.andantetribe.unitaskplus/Tests/Runtime/UniTaskPlusTests.cs b/src/UniTaskPlus.Unity/Packages/jp.andantetribe.unitaskplus/Tests/Runtime/UniTaskPlusTests.cs index f761dac..dcab604 100644 --- a/src/UniTaskPlus.Unity/Packages/jp.andantetribe.unitaskplus/Tests/Runtime/UniTaskPlusTests.cs +++ b/src/UniTaskPlus.Unity/Packages/jp.andantetribe.unitaskplus/Tests/Runtime/UniTaskPlusTests.cs @@ -7,7 +7,6 @@ using System.Threading; using Cysharp.Threading.Tasks; using NUnit.Framework; -using UniTaskPlus; using UniTaskPlus.Internal; using UnityEngine.TestTools; @@ -47,51 +46,6 @@ public void GrowWhenArrayHasContentCopiesAndClears() } } - public class StateTupleTests - { - [Test] - public void StateTuple1CreateAndDeconstructUsesPool() - { - var tuple = StateTuple.Create(1); - tuple.Deconstruct(out var item1); - Assert.That(item1, Is.EqualTo(1)); - - var tuple2 = StateTuple.Create(2); - tuple2.Deconstruct(out var item2); - Assert.That(item2, Is.EqualTo(2)); - } - - [Test] - public void StateTuple2CreateAndDeconstructUsesPool() - { - var tuple = StateTuple.Create(1, "A"); - tuple.Deconstruct(out var i1, out var s1); - Assert.That(i1, Is.EqualTo(1)); - Assert.That(s1, Is.EqualTo("A")); - - var tuple2 = StateTuple.Create(2, "B"); - tuple2.Deconstruct(out var i2, out var s2); - Assert.That(i2, Is.EqualTo(2)); - Assert.That(s2, Is.EqualTo("B")); - } - - [Test] - public void StateTuple3CreateAndDeconstructUsesPool() - { - var tuple = StateTuple.Create(1, "A", 0.5f); - tuple.Deconstruct(out var i1, out var s1, out var f1); - Assert.That(i1, Is.EqualTo(1)); - Assert.That(s1, Is.EqualTo("A")); - Assert.That(f1, Is.EqualTo(0.5f)); - - var tuple2 = StateTuple.Create(2, "B", 1.5f); - tuple2.Deconstruct(out var i2, out var s2, out var f2); - Assert.That(i2, Is.EqualTo(2)); - Assert.That(s2, Is.EqualTo("B")); - Assert.That(f2, Is.EqualTo(1.5f)); - } - } - public class UniTaskNodeTests { [UnityTest]