1use num_traits::PrimInt;
2
3pub fn e<T: PrimInt>(mut value: T) -> String {
4 if value == T::zero() {
5 return "0".to_string();
6 }
7
8 let radix = T::from(36).unwrap();
9 let mut result = String::new();
10
11 while value > T::zero() {
12 let remainder = value % radix;
13 let digit = remainder.to_u8().unwrap();
14
15 let c = match digit {
16 0..=9 => (b'0' + digit) as char,
17 10..=35 => (b'A' + (digit - 10)) as char,
18 _ => unreachable!(),
19 };
20
21 result.push(c);
22 value = value / radix;
23 }
24
25 result.chars().rev().collect()
27}