diff options
Diffstat (limited to 'std/io.zig')
| -rw-r--r-- | std/io.zig | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/std/io.zig b/std/io.zig index 8da396c3a2..752f01c3de 100644 --- a/std/io.zig +++ b/std/io.zig @@ -369,16 +369,17 @@ pub fn parseUnsigned(comptime T: type, buf: []u8, radix: u8) -> %T { error InvalidChar; fn charToDigit(c: u8, radix: u8) -> %u8 { - const value = if ('0' <= c && c <= '9') { - c - '0' - } else if ('A' <= c && c <= 'Z') { - c - 'A' + 10 - } else if ('a' <= c && c <= 'z') { - c - 'a' + 10 - } else { - return error.InvalidChar; + const value = switch (c) { + '0' ... '9' => c - '0', + 'A' ... 'Z' => c - 'A' + 10, + 'a' ... 'z' => c - 'a' + 10, + else => return error.InvalidChar, }; - return if (value >= radix) error.InvalidChar else value; + + if (value >= radix) + return error.InvalidChar; + + return value; } pub fn bufPrintInt(comptime T: type, out_buf: []u8, x: T) -> usize { |
