1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-12 05:14:10 +02:00

Added IEnumerable<T> to arrays

This commit is contained in:
Brian Fiete 2021-01-20 11:44:07 -08:00
parent d0cfb37309
commit 3f35ef51f2

View file

@ -211,7 +211,7 @@ namespace System
} }
[Ordered] [Ordered]
class Array1<T> : Array class Array1<T> : Array, IEnumerable<T>
{ {
T mFirstElement; T mFirstElement;
@ -325,7 +325,7 @@ namespace System
} }
[Ordered] [Ordered]
class Array2<T> : Array class Array2<T> : Array, IEnumerable<T>
{ {
int_arsize mLength1; int_arsize mLength1;
T mFirstElement; T mFirstElement;
@ -426,6 +426,11 @@ namespace System
return &mFirstElement; return &mFirstElement;
} }
public Span<T>.Enumerator GetEnumerator()
{
return .(.(&mFirstElement, mLength));
}
protected override void GCMarkMembers() protected override void GCMarkMembers()
{ {
for (int i = 0; i < mLength; i++) for (int i = 0; i < mLength; i++)
@ -436,7 +441,7 @@ namespace System
} }
[Ordered] [Ordered]
class Array3<T> : Array class Array3<T> : Array, IEnumerable<T>
{ {
int_arsize mLength1; int_arsize mLength1;
int_arsize mLength2; int_arsize mLength2;
@ -542,6 +547,11 @@ namespace System
return &mFirstElement; return &mFirstElement;
} }
public Span<T>.Enumerator GetEnumerator()
{
return .(.(&mFirstElement, mLength));
}
protected override void GCMarkMembers() protected override void GCMarkMembers()
{ {
for (int i = 0; i < mLength; i++) for (int i = 0; i < mLength; i++)
@ -552,7 +562,7 @@ namespace System
} }
[Ordered] [Ordered]
class Array4<T> : Array class Array4<T> : Array, IEnumerable<T>
{ {
int_arsize mLength1; int_arsize mLength1;
int_arsize mLength2; int_arsize mLength2;
@ -663,6 +673,11 @@ namespace System
return &mFirstElement; return &mFirstElement;
} }
public Span<T>.Enumerator GetEnumerator()
{
return .(.(&mFirstElement, mLength));
}
protected override void GCMarkMembers() protected override void GCMarkMembers()
{ {
for (int i = 0; i < mLength; i++) for (int i = 0; i < mLength; i++)