aboutsummaryrefslogtreecommitdiff
path: root/core/strconv
diff options
context:
space:
mode:
authorsamwega <alexanderglavan@gmail.com>2025-10-02 15:21:44 +0300
committersamwega <alexanderglavan@gmail.com>2025-10-02 15:21:44 +0300
commit7eb26d8eac012c3a5162bb50b81b50f907a40ff9 (patch)
tree22d1bb872f058856e9ad0f88dbc53807d79ae9c6 /core/strconv
parentea7e9bc11cedb7748547fcaf32837286396053ba (diff)
feat: added rtoi & utoi procs for converting a rune and a u8 character respectively to int
Diffstat (limited to 'core/strconv')
-rw-r--r--core/strconv/strconv.odin68
1 files changed, 68 insertions, 0 deletions
diff --git a/core/strconv/strconv.odin b/core/strconv/strconv.odin
index c1ef31cd7..885ffa1a9 100644
--- a/core/strconv/strconv.odin
+++ b/core/strconv/strconv.odin
@@ -1656,6 +1656,74 @@ write_float :: proc(buf: []byte, f: f64, fmt: byte, prec, bit_size: int) -> stri
return string(generic_ftoa(buf, f, fmt, prec, bit_size))
}
/*
+Casts a rune to int
+
+**Input:**
+
+- r: The input rune to find the integer value of
+
+Example:
+
+ import "core:strconv"
+ rune_to_int :: proc () {
+ my_int, ok := strconv.rtoi('5')
+ if ok {
+ assert(typeid_of(type_of(my_int)) == int)
+ fmt.println(my_int)
+ }
+ }
+
+Output:
+
+ 5
+
+**Returns:**
+
+- value: the integer value of the given rune
+- ok: ok=false if input not a rune or not numeric.
+*/
+rtoi :: proc(r: rune) -> (value: int, ok: bool) #optional_ok {
+ if '0' <= r && r <= '9' {
+ return int(r - '0'), true
+ }
+ return -1, false
+}
+/*
+Casts one u8 character to int
+
+**Input:**
+
+- u: The input u8 character to find the integer value of
+
+Example:
+
+ import "core:strconv"
+ u8_to_int :: proc () {
+ my_u8 := u8('8')
+ my_int, ok := strconv.utoi(my_u8)
+ if ok {
+ assert(typeid_of(type_of(my_int)) == int)
+ fmt.println(my_int)
+ }
+ }
+
+Output:
+
+ 8
+
+
+**Returns:**
+
+- value: the integer value of the given u8 character
+- ok: ok=false if input not a u8 character or not numeric.
+*/
+utoi :: proc(u: u8) -> (value: int, ok: bool) #optional_ok {
+ if '0' <= u && u <= '9' {
+ return int(u - '0'), true
+ }
+ return -1, false
+}
+/*
Writes a quoted string representation of the input string to a given byte slice and returns the result as a string
**Inputs**