Skip to content

Commit

Permalink
Switch IReadOnlyList<> to ArraySegment<> (#494)
Browse files Browse the repository at this point in the history
Update Buffered implementations to receive `ArraySegment`
  • Loading branch information
viceroypenguin committed Oct 23, 2023
1 parent 6a8c870 commit beff18d
Show file tree
Hide file tree
Showing 13 changed files with 126 additions and 30 deletions.
8 changes: 4 additions & 4 deletions Source/SuperLinq/Batch.Buffered.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public static partial class SuperEnumerable
public static IEnumerable<TResult> Batch<TSource, TResult>(
this IEnumerable<TSource> source,
int size,
Func<IReadOnlyList<TSource>, TResult> resultSelector)
Func<ArraySegment<TSource>, TResult> resultSelector)
{
Guard.IsNotNull(source);
Guard.IsNotNull(resultSelector);
Expand Down Expand Up @@ -65,7 +65,7 @@ public static IEnumerable<TResult> Batch<TSource, TResult>(
public static IEnumerable<TResult> Batch<TSource, TResult>(
this IEnumerable<TSource> source,
TSource[] array,
Func<IReadOnlyList<TSource>, TResult> resultSelector)
Func<ArraySegment<TSource>, TResult> resultSelector)
{
Guard.IsNotNull(source);
Guard.IsNotNull(array);
Expand Down Expand Up @@ -106,7 +106,7 @@ public static IEnumerable<TResult> Batch<TSource, TResult>(
this IEnumerable<TSource> source,
TSource[] array,
int size,
Func<IReadOnlyList<TSource>, TResult> resultSelector)
Func<ArraySegment<TSource>, TResult> resultSelector)
{
Guard.IsNotNull(source);
Guard.IsNotNull(array);
Expand All @@ -120,7 +120,7 @@ private static IEnumerable<TResult> BatchImpl<TSource, TResult>(
IEnumerable<TSource> source,
TSource[] array,
int size,
Func<IReadOnlyList<TSource>, TResult> resultSelector)
Func<ArraySegment<TSource>, TResult> resultSelector)
{
if (source is ICollection<TSource> coll
&& coll.Count <= size)
Expand Down
24 changes: 24 additions & 0 deletions Source/SuperLinq/PublicAPI/net6.0/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,27 @@
#nullable enable
static SuperLinq.SuperEnumerable.AggregateBy<TSource, TKey, TAccumulate>(this System.Collections.Generic.IEnumerable<TSource>! source, System.Func<TSource, TKey>! keySelector, System.Func<TKey, TAccumulate>! seedSelector, System.Func<TAccumulate, TSource, TAccumulate>! func, System.Collections.Generic.IEqualityComparer<TKey>? comparer = null) -> System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey, TAccumulate>>!
static SuperLinq.SuperEnumerable.AggregateBy<TSource, TKey, TAccumulate>(this System.Collections.Generic.IEnumerable<TSource>! source, System.Func<TSource, TKey>! keySelector, TAccumulate seed, System.Func<TAccumulate, TSource, TAccumulate>! func, System.Collections.Generic.IEqualityComparer<TKey>? comparer = null) -> System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey, TAccumulate>>!
*REMOVED*static SuperLinq.SuperEnumerable.Batch<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, int size, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! resultSelector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.Batch<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, int size, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! resultSelector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.Batch<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! resultSelector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.Window<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, int size, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.Window<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, int size, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.Window<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.WindowLeft<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, int size, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.WindowLeft<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, int size, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.WindowLeft<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.WindowRight<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, int size, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.WindowRight<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, int size, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.WindowRight<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.Batch<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, int size, System.Func<System.ArraySegment<TSource>, TResult>! resultSelector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.Batch<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, int size, System.Func<System.ArraySegment<TSource>, TResult>! resultSelector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.Batch<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, System.Func<System.ArraySegment<TSource>, TResult>! resultSelector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.Window<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, int size, System.Func<System.ArraySegment<TSource>, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.Window<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, int size, System.Func<System.ArraySegment<TSource>, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.Window<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, System.Func<System.ArraySegment<TSource>, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.WindowLeft<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, int size, System.Func<System.ArraySegment<TSource>, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.WindowLeft<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, int size, System.Func<System.ArraySegment<TSource>, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.WindowLeft<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, System.Func<System.ArraySegment<TSource>, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.WindowRight<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, int size, System.Func<System.ArraySegment<TSource>, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.WindowRight<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, int size, System.Func<System.ArraySegment<TSource>, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.WindowRight<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, System.Func<System.ArraySegment<TSource>, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
24 changes: 24 additions & 0 deletions Source/SuperLinq/PublicAPI/net7.0/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,27 @@
#nullable enable
static SuperLinq.SuperEnumerable.AggregateBy<TSource, TKey, TAccumulate>(this System.Collections.Generic.IEnumerable<TSource>! source, System.Func<TSource, TKey>! keySelector, System.Func<TKey, TAccumulate>! seedSelector, System.Func<TAccumulate, TSource, TAccumulate>! func, System.Collections.Generic.IEqualityComparer<TKey>? comparer = null) -> System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey, TAccumulate>>!
static SuperLinq.SuperEnumerable.AggregateBy<TSource, TKey, TAccumulate>(this System.Collections.Generic.IEnumerable<TSource>! source, System.Func<TSource, TKey>! keySelector, TAccumulate seed, System.Func<TAccumulate, TSource, TAccumulate>! func, System.Collections.Generic.IEqualityComparer<TKey>? comparer = null) -> System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey, TAccumulate>>!
*REMOVED*static SuperLinq.SuperEnumerable.Batch<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, int size, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! resultSelector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.Batch<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, int size, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! resultSelector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.Batch<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! resultSelector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.Window<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, int size, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.Window<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, int size, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.Window<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.WindowLeft<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, int size, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.WindowLeft<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, int size, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.WindowLeft<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.WindowRight<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, int size, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.WindowRight<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, int size, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
*REMOVED*static SuperLinq.SuperEnumerable.WindowRight<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, System.Func<System.Collections.Generic.IReadOnlyList<TSource>!, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.Batch<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, int size, System.Func<System.ArraySegment<TSource>, TResult>! resultSelector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.Batch<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, int size, System.Func<System.ArraySegment<TSource>, TResult>! resultSelector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.Batch<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, System.Func<System.ArraySegment<TSource>, TResult>! resultSelector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.Window<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, int size, System.Func<System.ArraySegment<TSource>, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.Window<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, int size, System.Func<System.ArraySegment<TSource>, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.Window<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, System.Func<System.ArraySegment<TSource>, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.WindowLeft<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, int size, System.Func<System.ArraySegment<TSource>, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.WindowLeft<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, int size, System.Func<System.ArraySegment<TSource>, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.WindowLeft<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, System.Func<System.ArraySegment<TSource>, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.WindowRight<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, int size, System.Func<System.ArraySegment<TSource>, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.WindowRight<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, int size, System.Func<System.ArraySegment<TSource>, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
static SuperLinq.SuperEnumerable.WindowRight<TSource, TResult>(this System.Collections.Generic.IEnumerable<TSource>! source, TSource[]! array, System.Func<System.ArraySegment<TSource>, TResult>! selector) -> System.Collections.Generic.IEnumerable<TResult>!
Loading

0 comments on commit beff18d

Please sign in to comment.