Merge pull request #1640 from Lperlind/split-iterator-byte

Add split_iterator_byte
This commit is contained in:
gingerBill
2022-03-21 10:49:21 +00:00
committed by GitHub

View File

@@ -339,6 +339,25 @@ _split_iterator :: proc(s: ^string, sep: string, sep_save: int) -> (res: string,
return
}
@private
_split_by_byte_iterator :: proc(s: ^string, sep: u8) -> (res: string, ok: bool) {
m := index_byte(s^, sep)
if m < 0 {
// not found
res = s[:]
ok = res != ""
s^ = {}
} else {
res = s[:m]
ok = true
s^ = s[m+1:]
}
return
}
split_by_byte_iterator :: proc(s: ^string, sep: u8) -> (string, bool) {
return _split_by_byte_iterator(s, sep)
}
split_iterator :: proc(s: ^string, sep: string) -> (string, bool) {
return _split_iterator(s, sep, 0)