pub fn try_parse_unsigned_integer(input: &str) -> Option<(u128, u8)> {
if input.ends_with("u128") {
let nums = &input[..input.len() - 4];
return u128::from_str_radix(nums, 10).ok().map(|v| (v, 128));
}
if input.ends_with("u64") {
let nums = &input[..input.len() - 3];
return u128::from_str_radix(nums, 10).ok().map(|v| (v, 64));
}
if input.ends_with("u32") {
let nums = &input[..input.len() - 3];
return u128::from_str_radix(nums, 10).ok().map(|v| (v, 32));
}
if input.ends_with("u16") {
let nums = &input[..input.len() - 3];
return u128::from_str_radix(nums, 10).ok().map(|v| (v, 16));
}
if input.ends_with("u8") {
let nums = &input[..input.len() - 2];
return u128::from_str_radix(nums, 10).ok().map(|v| (v, 8));
}
None
}
pub fn try_parse_integer(input: &str) -> Option<(i128, u8)> {
if input.ends_with("i128") {
let nums = &input[..input.len() - 4];
return i128::from_str_radix(nums, 10).ok().map(|v| (v, 128));
}
if input.ends_with("i64") {
let nums = &input[..input.len() - 3];
return i128::from_str_radix(nums, 10).ok().map(|v| (v, 64));
}
if input.ends_with("i32") {
let nums = &input[..input.len() - 3];
return i128::from_str_radix(nums, 10).ok().map(|v| (v, 32));
}
if input.ends_with("i16") {
let nums = &input[..input.len() - 3];
return i128::from_str_radix(nums, 10).ok().map(|v| (v, 16));
}
if input.ends_with("i8") {
let nums = &input[..input.len() - 2];
return i128::from_str_radix(nums, 10).ok().map(|v| (v, 8));
}
None
}