diff --git a/BeefLibs/corlib/src/Array.bf b/BeefLibs/corlib/src/Array.bf index 08fd09ba..d206d93c 100644 --- a/BeefLibs/corlib/src/Array.bf +++ b/BeefLibs/corlib/src/Array.bf @@ -211,7 +211,7 @@ namespace System } [Ordered] - class Array1 : Array + class Array1 : Array, IEnumerable { T mFirstElement; @@ -325,7 +325,7 @@ namespace System } [Ordered] - class Array2 : Array + class Array2 : Array, IEnumerable { int_arsize mLength1; T mFirstElement; @@ -426,6 +426,11 @@ namespace System return &mFirstElement; } + public Span.Enumerator GetEnumerator() + { + return .(.(&mFirstElement, mLength)); + } + protected override void GCMarkMembers() { for (int i = 0; i < mLength; i++) @@ -436,7 +441,7 @@ namespace System } [Ordered] - class Array3 : Array + class Array3 : Array, IEnumerable { int_arsize mLength1; int_arsize mLength2; @@ -542,6 +547,11 @@ namespace System return &mFirstElement; } + public Span.Enumerator GetEnumerator() + { + return .(.(&mFirstElement, mLength)); + } + protected override void GCMarkMembers() { for (int i = 0; i < mLength; i++) @@ -552,7 +562,7 @@ namespace System } [Ordered] - class Array4 : Array + class Array4 : Array, IEnumerable { int_arsize mLength1; int_arsize mLength2; @@ -663,6 +673,11 @@ namespace System return &mFirstElement; } + public Span.Enumerator GetEnumerator() + { + return .(.(&mFirstElement, mLength)); + } + protected override void GCMarkMembers() { for (int i = 0; i < mLength; i++)