atoi_simd 0.18.1

Fast `&[u8]` to integer parser
Documentation
use ::core::fmt;

#[derive(Debug, Clone, Copy, PartialOrd, Ord, PartialEq, Eq)]
pub enum AtoiSimdError<'a> {
    Empty,
    Size(usize, &'a [u8]),
    Overflow(&'a [u8]),
    Invalid64(u64, usize, &'a [u8]),
    Invalid128(u128, usize, &'a [u8]),
}

impl fmt::Display for AtoiSimdError<'_> {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        match self {
            Self::Empty => write!(f, "atoi_simd string is empty"),
            Self::Size(len, input) => {
                write!(
                    f,
                    "atoi_simd wrong size: {} input: {:X?}",
                    len,
                    &input[..input.len().min(48)]
                )
            }
            Self::Overflow(input) => {
                write!(
                    f,
                    "atoi_simd overflow, input: {:X?}",
                    &input[..input.len().min(48)]
                )
            }
            Self::Invalid64(res, index, input) => {
                write!(
                    f,
                    "atoi_simd invalid at index: {} it must contain only digits, starting with: {}  input: {:X?}",
                    index, res, &input[..input.len().min(48)]
                )
            }
            Self::Invalid128(res, index, input) => {
                write!(
                    f,
                    "atoi_simd invalid at index: {} it must contain only digits, starting with: {} input: {:X?}",
                    index, res, &input[..input.len().min(48)]
                )
            }
        }
    }
}

#[cfg(feature = "std")]
impl ::std::error::Error for AtoiSimdError<'_> {}