Skip to content

Instantly share code, notes, and snippets.

@aalmada
Created April 25, 2021 12:51
Show Gist options
  • Save aalmada/85cb955470bc292300aaea8b76543d4a to your computer and use it in GitHub Desktop.
Save aalmada/85cb955470bc292300aaea8b76543d4a to your computer and use it in GitHub Desktop.
namespace NetFabric.Hyperlinq
{
public interface IValueEnumerable<out T, out TEnumerator>
: IEnumerable<T>
where TEnumerator : struct, IEnumerator<T>
{
new TEnumerator GetEnumerator();
}
public interface IValueReadOnlyCollection<out T, out TEnumerator>
: IReadOnlyCollection<T>
, IValueEnumerable<T, TEnumerator>
where TEnumerator : struct, IEnumerator<T>
{
}
public interface IValueReadOnlyList<out T, out TEnumerator>
: IReadOnlyList<T>
, IValueReadOnlyCollection<T, TEnumerator>
where TEnumerator : struct, IEnumerator<T>
{
}
public interface IAsyncValueEnumerable<out T, out TEnumerator>
: IAsyncEnumerable<T>
where TEnumerator : struct, IAsyncEnumerator<T>
{
new TEnumerator GetAsyncEnumerator(CancellationToken cancellationToken = default);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment