using System.Collections; using System.Collections.Generic; using System.Runtime.CompilerServices; namespace DCFApixels.DragonECS.Internal { public readonly struct GenericEnumerable : IEnumerable where TEnumerator : IEnumerator { public readonly TEnumerator _enumerator; [MethodImpl(MethodImplOptions.AggressiveInlining)] public GenericEnumerable(TEnumerator enumerator) => _enumerator = enumerator; [MethodImpl(MethodImplOptions.AggressiveInlining)] public TEnumerator GetEnumerator() => _enumerator; [MethodImpl(MethodImplOptions.AggressiveInlining)] IEnumerator IEnumerable.GetEnumerator() => _enumerator; [MethodImpl(MethodImplOptions.AggressiveInlining)] IEnumerator IEnumerable.GetEnumerator() => _enumerator; [MethodImpl(MethodImplOptions.AggressiveInlining)] public static implicit operator GenericEnumerable(TEnumerator enumerator) => new GenericEnumerable(enumerator); } }