aboutsummaryrefslogtreecommitdiff
path: root/core/bytes
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-04-22 15:49:10 +0100
committergingerBill <bill@gingerbill.org>2021-04-22 15:49:10 +0100
commitd33350e3a5280cee5af74ed71f776f783a49e362 (patch)
tree5d840d09d02ec8369d85a70cf9270a2905b35d38 /core/bytes
parent8a86c4c7cc65415f7b4bc8648019805e86016f21 (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.odin15
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 {