diff --git a/Recyclable.Collections.Compatibility.List/Recyclable.Collections.Compatibility.List.csproj b/Recyclable.Collections.Compatibility.List/Recyclable.Collections.Compatibility.List.csproj index 15e743c..5f954d0 100644 --- a/Recyclable.Collections.Compatibility.List/Recyclable.Collections.Compatibility.List.csproj +++ b/Recyclable.Collections.Compatibility.List/Recyclable.Collections.Compatibility.List.csproj @@ -6,7 +6,7 @@ enable true Recyclable.Collections.Compatibility.List - 0.0.2 + 0.0.3 Marek LemaƄczyk N/A Recyclable.Collections.Compatibility.List @@ -18,7 +18,7 @@ LICENSE.md README.md git - Collections.Benchmarks.Core package updated. Bug fixes. + RecyclableLongList.Compatibility.List.Find(), .FindLast(), .ForEach() & .GetRange() implemented. Bug fixes. AnyCPU;x64 logo.png diff --git a/Recyclable.Collections.Compatibility.List/RecyclableList.Compatibility.List.cs b/Recyclable.Collections.Compatibility.List/RecyclableList.Compatibility.List.cs index 7c7d3f0..d414ca0 100644 --- a/Recyclable.Collections.Compatibility.List/RecyclableList.Compatibility.List.cs +++ b/Recyclable.Collections.Compatibility.List/RecyclableList.Compatibility.List.cs @@ -6,6 +6,8 @@ using System.Runtime.CompilerServices; using Recyclable.Collections.Compatibility.List.Properties; using Recyclable.Collections.Pools; +[assembly: InternalsVisibleTo("Recyclable.Collections.Compatibility.List.Tests")] + namespace Recyclable.Collections { diff --git a/Recyclable.Collections.Compatibility.List/RecyclableLongList.Compatibility.List.IndexOf.cs b/Recyclable.Collections.Compatibility.List/RecyclableLongList.Compatibility.List.IndexOf.cs index 3f065ca..b4c509d 100644 --- a/Recyclable.Collections.Compatibility.List/RecyclableLongList.Compatibility.List.IndexOf.cs +++ b/Recyclable.Collections.Compatibility.List/RecyclableLongList.Compatibility.List.IndexOf.cs @@ -6,19 +6,19 @@ namespace Recyclable.Collections public static class zzzRecyclableLongListCompatibilityListIndexOf #pragma warning restore IDE1006 // Naming Styles { - public static int LastIndexOf(this RecyclableLongList list, T item) + internal static int LastIndexOf(this RecyclableLongList list, T item) //=> list._count != 0 // ? Array.LastIndexOf(list._memoryBlock, item, list._count - 1) // : RecyclableDefaults.ItemNotFoundIndex; => throw new NotImplementedException(); - public static int LastIndexOf(this RecyclableLongList list, T item, int index) + internal static int LastIndexOf(this RecyclableLongList list, T item, int index) //=> list._count != 0 // ? Array.LastIndexOf(list._memoryBlock, item, index) // : RecyclableDefaults.ItemNotFoundIndex; => throw new NotImplementedException(); - public static int LastIndexOf(this RecyclableLongList list, T item, int index, int count) + internal static int LastIndexOf(this RecyclableLongList list, T item, int index, int count) //=> list._count != 0 // ? Array.LastIndexOf(list._memoryBlock, item, index, count) // : RecyclableDefaults.ItemNotFoundIndex; diff --git a/Recyclable.Collections.Compatibility.List/RecyclableLongList.Compatibility.List.InsertRange.cs b/Recyclable.Collections.Compatibility.List/RecyclableLongList.Compatibility.List.InsertRange.cs index 17804a6..7e5c36d 100644 --- a/Recyclable.Collections.Compatibility.List/RecyclableLongList.Compatibility.List.InsertRange.cs +++ b/Recyclable.Collections.Compatibility.List/RecyclableLongList.Compatibility.List.InsertRange.cs @@ -90,7 +90,7 @@ namespace Recyclable.Collections } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.AggressiveOptimization)] - public static void InsertRange(this RecyclableLongList list, int index, in Array items) + internal static void InsertRange(this RecyclableLongList list, int index, in Array items) { //if (list._capacity < list._count + items.Length) //{ @@ -108,7 +108,7 @@ namespace Recyclable.Collections } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.AggressiveOptimization)] - public static void InsertRange(this RecyclableLongList list, int index, in T[] items) + internal static void InsertRange(this RecyclableLongList list, int index, in T[] items) { //if (list._capacity < list._count + items.Length) //{ @@ -126,7 +126,7 @@ namespace Recyclable.Collections } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.AggressiveOptimization)] - public static void InsertRange(this RecyclableLongList list, int index, ReadOnlySpan items) + internal static void InsertRange(this RecyclableLongList list, int index, ReadOnlySpan items) { //if (list._capacity < list._count + items.Length) //{ @@ -144,7 +144,7 @@ namespace Recyclable.Collections } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.AggressiveOptimization)] - public static void InsertRange(this RecyclableLongList list, int index, Span items) + internal static void InsertRange(this RecyclableLongList list, int index, Span items) { //if (list._capacity < list._count + items.Length) //{ @@ -162,7 +162,7 @@ namespace Recyclable.Collections } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.AggressiveOptimization)] - public static void InsertRange(this RecyclableLongList list, int index, List items) + internal static void InsertRange(this RecyclableLongList list, int index, List items) { //if (list._capacity < list._count + items.Count) //{ @@ -180,7 +180,7 @@ namespace Recyclable.Collections } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.AggressiveOptimization)] - public static void InsertRange(this RecyclableLongList list, int index, ICollection items) + internal static void InsertRange(this RecyclableLongList list, int index, ICollection items) { //if (list._capacity < list._count + items.Count) //{ @@ -198,7 +198,7 @@ namespace Recyclable.Collections } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.AggressiveOptimization)] - public static void InsertRange(this RecyclableLongList list, int index, ICollection items) + internal static void InsertRange(this RecyclableLongList list, int index, ICollection items) { //if (list._capacity < list._count + items.Count) //{ @@ -216,7 +216,7 @@ namespace Recyclable.Collections } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.AggressiveOptimization)] - public static void InsertRange(this RecyclableLongList list, int index, RecyclableList items) + internal static void InsertRange(this RecyclableLongList list, int index, RecyclableList items) { //if (list._capacity < list._count + items._count) //{ @@ -234,7 +234,7 @@ namespace Recyclable.Collections } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.AggressiveOptimization)] - public static void InsertRange(this RecyclableLongList list, int index, RecyclableLongList items) + internal static void InsertRange(this RecyclableLongList list, int index, RecyclableLongList items) { //if (items._longCount == 0) //{ @@ -287,7 +287,7 @@ namespace Recyclable.Collections throw new NotImplementedException(); } - public static void InsertRange(this RecyclableLongList list, int index, IEnumerable items, int growByCount = RecyclableDefaults.MinPooledArrayLength) + internal static void InsertRange(this RecyclableLongList list, int index, IEnumerable items, int growByCount = RecyclableDefaults.MinPooledArrayLength) { //var enumerator = items.GetEnumerator(); //if (!enumerator.MoveNext()) @@ -349,7 +349,7 @@ namespace Recyclable.Collections throw new NotImplementedException(); } - public static void InsertRange(this RecyclableLongList list, int index, IReadOnlyList items) + internal static void InsertRange(this RecyclableLongList list, int index, IReadOnlyList items) { //int sourceItemsCount = items.Count; //if (list._capacity < list._count + sourceItemsCount) @@ -370,7 +370,7 @@ namespace Recyclable.Collections } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.AggressiveOptimization)] - public static void InsertRange(this RecyclableLongList list, int index, IEnumerable items, int growByCount = RecyclableDefaults.MinPooledArrayLength) + internal static void InsertRange(this RecyclableLongList list, int index, IEnumerable items, int growByCount = RecyclableDefaults.MinPooledArrayLength) { //if (items is RecyclableList sourceRecyclableList) //{ diff --git a/Recyclable.Collections.Compatibility.List/RecyclableLongList.Compatibility.List.cs b/Recyclable.Collections.Compatibility.List/RecyclableLongList.Compatibility.List.cs index 9a68879..d52303f 100644 --- a/Recyclable.Collections.Compatibility.List/RecyclableLongList.Compatibility.List.cs +++ b/Recyclable.Collections.Compatibility.List/RecyclableLongList.Compatibility.List.cs @@ -463,7 +463,7 @@ namespace Recyclable.Collections return result; } - public static int RemoveAll(this RecyclableLongList list, Predicate match) + internal static int RemoveAll(this RecyclableLongList list, Predicate match) { //using var allIndexes = zzzRecyclableListCompatibilityListFind.FindAllIndexes(list, match); //int foundItemsCount = allIndexes._count; @@ -490,7 +490,7 @@ namespace Recyclable.Collections throw new NotImplementedException(); } - public static void RemoveRange(this RecyclableLongList list, int index, int count) + internal static void RemoveRange(this RecyclableLongList list, int index, int count) { //int oldCount = list._count; //count = count - index + 1 <= oldCount ? count : oldCount - index + 1; @@ -516,7 +516,7 @@ namespace Recyclable.Collections } [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)] - public static void Reverse(this RecyclableLongList list) + internal static void Reverse(this RecyclableLongList list) { //Array.Reverse(list._memoryBlock, 0, list._count); //list._version++; @@ -525,7 +525,7 @@ namespace Recyclable.Collections } [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)] - public static void Reverse(this RecyclableLongList list, int index, int count) + internal static void Reverse(this RecyclableLongList list, int index, int count) { //Array.Reverse(list._memoryBlock, index, count); //list._version++; @@ -534,7 +534,7 @@ namespace Recyclable.Collections } [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)] - public static void Sort(this RecyclableLongList list) + internal static void Sort(this RecyclableLongList list) { //Array.Sort(list._memoryBlock, 0, list._count); //list._version++; @@ -543,7 +543,7 @@ namespace Recyclable.Collections } [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)] - public static void Sort(this RecyclableLongList list, Comparison comparison) + internal static void Sort(this RecyclableLongList list, Comparison comparison) { //Array.Sort(list._memoryBlock, 0, list._count, new ComparisonToComparerAdapter(comparison)); //list._version++; @@ -552,7 +552,7 @@ namespace Recyclable.Collections } [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)] - public static void Sort(this RecyclableLongList list, IComparer? comparer) + internal static void Sort(this RecyclableLongList list, IComparer? comparer) { //Array.Sort(list._memoryBlock, 0, list._count, comparer); //list._version++; @@ -561,7 +561,7 @@ namespace Recyclable.Collections } [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)] - public static void Sort(this RecyclableLongList list, int index, int count, IComparer? comparer) + internal static void Sort(this RecyclableLongList list, int index, int count, IComparer? comparer) { //Array.Sort(list._memoryBlock, index, count, comparer); //list._version++; @@ -570,7 +570,7 @@ namespace Recyclable.Collections } [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)] - public static T[] ToArray(this RecyclableLongList list) + internal static T[] ToArray(this RecyclableLongList list) { //T[] result = new T[list._count]; //new ReadOnlySpan(list._memoryBlock, 0, list._count).CopyTo(result); @@ -579,7 +579,7 @@ namespace Recyclable.Collections throw new NotImplementedException(); } - public static void TrimExcess(this RecyclableLongList list) + internal static void TrimExcess(this RecyclableLongList list) { //var requiredCapacity = list._count >= RecyclableDefaults.InitialCapacity ? list._count : RecyclableDefaults.InitialCapacity; @@ -601,7 +601,7 @@ namespace Recyclable.Collections throw new NotImplementedException(); } - public static bool TrueForAll(this RecyclableLongList list, Predicate match) + internal static bool TrueForAll(this RecyclableLongList list, Predicate match) { //int sourceItemsCount = list._count; //if (sourceItemsCount == 0)