diff options
| author | gingerBill <bill@gingerbill.org> | 2021-04-22 15:49:10 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2021-04-22 15:49:10 +0100 |
| commit | d33350e3a5280cee5af74ed71f776f783a49e362 (patch) | |
| tree | 5d840d09d02ec8369d85a70cf9270a2905b35d38 /core/bytes | |
| parent | 8a86c4c7cc65415f7b4bc8648019805e86016f21 (diff) | |
Add truncate_to_byte and truncate_to_rune for packages strings and bytes
Diffstat (limited to 'core/bytes')
| -rw-r--r-- | core/bytes/bytes.odin | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/core/bytes/bytes.odin b/core/bytes/bytes.odin index c951e19a0..639e36721 100644 --- a/core/bytes/bytes.odin +++ b/core/bytes/bytes.odin @@ -16,6 +16,21 @@ ptr_from_slice :: proc(str: []byte) -> ^byte { return d.data; } +truncate_to_byte :: proc(str: []byte, b: byte) -> []byte { + n := index_byte(str, b); + if n < 0 { + n = len(str); + } + return str[:n]; +} +truncate_to_rune :: proc(str: []byte, r: rune) -> []byte { + n := index_rune(str, r); + if n < 0 { + n = len(str); + } + return str[:n]; +} + // Compares two strings, returning a value representing which one comes first lexiographically. // -1 for `a`; 1 for `b`, or 0 if they are equal. compare :: proc(lhs, rhs: []byte) -> int { |