From 73d0499c5d48df12461d175ba026516b9ece378d Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Tue, 31 Dec 2024 14:25:04 -0800 Subject: [PATCH] Switched to StringView for some args, params Span instead of array --- BeefLibs/corlib/src/String.bf | 48 +++++++++++++++++------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/BeefLibs/corlib/src/String.bf b/BeefLibs/corlib/src/String.bf index e029e8d5..fbe0b81e 100644 --- a/BeefLibs/corlib/src/String.bf +++ b/BeefLibs/corlib/src/String.bf @@ -293,7 +293,7 @@ namespace System mLength = (int_strsize)count; } - static int StrLengths(String[] strs) + static int StrLengths(Span strs) { int count = 0; for (var str in strs) @@ -302,7 +302,7 @@ namespace System } [AllowAppend] - public this(params String[] strs) + public this(params Span strs) { int count = StrLengths(strs); int bufferSize = (count == 0) ? 0 : (count - 1) & ~(sizeof(char8*) - 1); @@ -966,7 +966,7 @@ namespace System Append(str.Ptr + offset, length); } - public void Append(params String[] strings) + public void Append(params Span strings) { for (var str in strings) Append(str); @@ -2514,9 +2514,9 @@ namespace System } } - public void Join(String separator, params String[] values) + public void Join(StringView separator, params Span values) { - for (int i = 0; i < values.Count; i++) + for (int i = 0; i < values.Length; i++) { if (i > 0) Append(separator); @@ -2544,27 +2544,27 @@ namespace System return StringSplitEnumerator(Ptr, Length, separator, count, options); } - public StringSplitEnumerator Split(params char8[] separators) + public StringSplitEnumerator Split(params Span separators) { return StringSplitEnumerator(Ptr, Length, separators, Int32.MaxValue, StringSplitOptions.None); } - public StringSplitEnumerator Split(char8[] separators) + public StringSplitEnumerator Split(Span separators) { return StringSplitEnumerator(Ptr, Length, separators, Int32.MaxValue, StringSplitOptions.None); } - public StringSplitEnumerator Split(char8[] separators, int count) + public StringSplitEnumerator Split(Span separators, int count) { return StringSplitEnumerator(Ptr, Length, separators, count, StringSplitOptions.None); } - public StringSplitEnumerator Split(char8[] separators, int count, StringSplitOptions options) + public StringSplitEnumerator Split(Span separators, int count, StringSplitOptions options) { return StringSplitEnumerator(Ptr, Length, separators, count, options); } - public StringSplitEnumerator Split(char8[] separators, StringSplitOptions options) + public StringSplitEnumerator Split(Span separators, StringSplitOptions options) { return StringSplitEnumerator(Ptr, Length, separators, Int32.MaxValue, options); } @@ -3079,15 +3079,15 @@ namespace System int_strsize mPos; int_strsize mMatchPos; - public this(char8* ptr, int strLength, char8[] separators, int count, StringSplitOptions splitOptions) + public this(char8* ptr, int strLength, Span separators, int count, StringSplitOptions splitOptions) { mPtr = ptr; mStrLen = (int_strsize)strLength; - if (separators?.Count > 0) + if (separators.Length > 0) { mFirstSeparator = separators[0]; mSeparatorPtr = &separators[0]; - mSeparatorCount = (.)separators.Count; + mSeparatorCount = (.)separators.Length; } else { @@ -3281,7 +3281,7 @@ namespace System { StringSplitOptions mSplitOptions; StringView mFirstSeparator; - StringView[] mSeparators; + Span mSeparators; char8* mPtr; int_strsize mStrLen; int32 mCurCount; @@ -3290,11 +3290,11 @@ namespace System int_strsize mMatchPos; int_strsize mMatchLen; - public this(char8* ptr, int strLength, StringView[] separators, int count, StringSplitOptions splitOptions) + public this(char8* ptr, int strLength, Span separators, int count, StringSplitOptions splitOptions) { mPtr = ptr; mStrLen = (int_strsize)strLength; - if (separators?.Count > 0) + if (separators.Length > 0) mFirstSeparator = separators[0]; else mFirstSeparator = .(); @@ -3414,7 +3414,7 @@ namespace System } else { - if (mFirstSeparator.IsNull && (mSeparators == null || mSeparators.IsEmpty) && mPtr[mMatchPos].IsWhiteSpace) + if (mFirstSeparator.IsNull && (mSeparators.IsEmpty) && mPtr[mMatchPos].IsWhiteSpace) { foundMatch = true; mMatchLen = 1; @@ -3424,9 +3424,9 @@ namespace System foundMatch = true; mMatchLen = (int_strsize)mFirstSeparator.Length; } - else if (mSeparators != null) + else if (!mSeparators.IsEmpty) { - for (int i = 1; i < mSeparators.Count; i++) + for (int i = 1; i < mSeparators.Length; i++) { if (mSeparators[i].Length <= mStrLen - mMatchPos && StringView(&mPtr[mMatchPos], mSeparators[i].Length) == mSeparators[i]) { @@ -4273,27 +4273,27 @@ namespace System return StringStringSplitEnumerator(Ptr, Length, separator, count, options); } - public StringStringSplitEnumerator Split(params StringView[] separators) + public StringStringSplitEnumerator Split(params Span separators) { return StringStringSplitEnumerator(Ptr, Length, separators, Int32.MaxValue, StringSplitOptions.None); } - public StringStringSplitEnumerator Split(StringView[] separators) + public StringStringSplitEnumerator Split(Span separators) { return StringStringSplitEnumerator(Ptr, Length, separators, Int32.MaxValue, StringSplitOptions.None); } - public StringStringSplitEnumerator Split(StringView[] separators, int count) + public StringStringSplitEnumerator Split(Span separators, int count) { return StringStringSplitEnumerator(Ptr, Length, separators, count, StringSplitOptions.None); } - public StringStringSplitEnumerator Split(StringView[] separators, int count, StringSplitOptions options) + public StringStringSplitEnumerator Split(Span separators, int count, StringSplitOptions options) { return StringStringSplitEnumerator(Ptr, Length, separators, count, options); } - public StringStringSplitEnumerator Split(StringView[] separators, StringSplitOptions options) + public StringStringSplitEnumerator Split(Span separators, StringSplitOptions options) { return StringStringSplitEnumerator(Ptr, Length, separators, Int32.MaxValue, options); }