pub fn is_within_range<T>(
    string: String,
    range_min: T,
    range_max: T
) -> Result<(), String> where
    T: FromStr + Copy + Debug + PartialOrd + Add<Output = T> + From<usize>,
    T::Err: Display