heh
Diffstat (limited to 'src/util.rs')
| -rw-r--r-- | src/util.rs | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/util.rs b/src/util.rs index f642d38..874ab5a 100644 --- a/src/util.rs +++ b/src/util.rs @@ -680,19 +680,15 @@ pub mod 読む { } } - pub fn hex_dig(b: u8) -> Result<u8, ()> { - match b { - b'0'..=b'9' => Ok(b as u8 - b'0' as u8), - b'a'..=b'f' => Ok(b as u8 - (b'a' as u8 - 10)), - _ => Err(()), - } + pub fn hex_dig(b: u8) -> u8 { + (b & 0xF) + 9 * (b >> 6) } pub fn hex(mut d: &[u8]) -> Result<u32, ()> { let &b = d.take_first().ok_or(())?; - let mut num = hex_dig(b)? as u32; + let mut num = hex_dig(b) as u32; while let Some(&b) = d.take_first() { - num = num * 16 + hex_dig(b)? as u32; + num = num * 16 + hex_dig(b) as u32; } Ok(num) } |