use std::{num::ParseIntError, str::FromStr};
#[allow(unused)]
pub trait ParseNum<F: FromStr> {
fn parse_num(&self) -> Result<F, F::Err>;
}
impl ParseNum<usize> for str {
fn parse_num(&self) -> Result<usize, ParseIntError> {
let s = self.trim();
if s.starts_with("0x") || s.starts_with("0X") {
return usize::from_str_radix(&s[2..], 16);
}
s.parse()
}
}
impl ParseNum<i32> for str {
fn parse_num(&self) -> Result<i32, ParseIntError> {
let s = self.trim();
if s.starts_with("0x") || s.starts_with("0X") {
return i32::from_str_radix(&s[2..], 16);
}
s.parse()
}
}