#[must_use]
#[inline]
pub fn u8_radix36_char(num: u8) -> char {
if num < 10 {
(b'0' + num) as char
} else {
(b'a' + num - 10) as char
}
}
#[must_use]
pub fn u64_radix36(x: u64) -> String {
if x < 36 {
return u8_radix36_char(x as u8).to_string();
}
let mut result = ['\0'; 128];
let mut used = 1;
let mut x = x;
let mut m = (x % 36) as u8;
x /= 36;
result[0] = u8_radix36_char(m);
if x > 0 {
loop {
m = (x % 36) as u8;
x /= 36;
result[used] = u8_radix36_char(m);
used += 1;
if x == 0 {
break;
}
}
}
let mut s = String::new();
for c in result[..used].iter().rev() {
s.push(*c);
}
s
}