authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-01-23 01:19:03-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-01-23 01:19:03-05:00
log1826a961608037405237f12df5aec94f8f5f3a10
tree8d0ca37dd8162bab39d9c648294176ab96e10a41
parent0b34439c1f380a1a9e26d219550a1cfd31fa698e

update charToDigit to take advantage of switch syntax


1 files changed, 10 insertions(+), 9 deletions(-)

std/io.zig+10-9
......@@ -369,16 +369,17 @@ pub fn parseUnsigned(comptime T: type, buf: []u8, radix: u8) -> %T {
369369
370370error InvalidChar;
371371fn charToDigit(c: u8, radix: u8) -> %u8 {
372 const value = if ('0' <= c && c <= '9') {
373 c - '0'
374 } else if ('A' <= c && c <= 'Z') {
375 c - 'A' + 10
376 } else if ('a' <= c && c <= 'z') {
377 c - 'a' + 10
378 } else {
379 return error.InvalidChar;
372 const value = switch (c) {
373 '0' ... '9' => c - '0',
374 'A' ... 'Z' => c - 'A' + 10,
375 'a' ... 'z' => c - 'a' + 10,
376 else => return error.InvalidChar,
380377 };
381 return if (value >= radix) error.InvalidChar else value;
378
379 if (value >= radix)
380 return error.InvalidChar;
381
382 return value;
382383}
383384
384385pub fn bufPrintInt(comptime T: type, out_buf: []u8, x: T) -> usize {