diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2017-01-23 01:19:03 -0500 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2017-01-23 01:19:03 -0500 |
| commit | 1826a961608037405237f12df5aec94f8f5f3a10 (patch) | |
| tree | 8d0ca37dd8162bab39d9c648294176ab96e10a41 | |
| parent | 0b34439c1f380a1a9e26d219550a1cfd31fa698e (diff) | |
| download | zig-1826a961608037405237f12df5aec94f8f5f3a10.tar.gz zig-1826a961608037405237f12df5aec94f8f5f3a10.zip | |
update charToDigit to take advantage of switch syntax
| -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 { |
