#[derive(Debug)]
pub struct IntegerOffsetError(pub(crate) IntegerOffsetErrorImpl);
#[derive(Debug)]
pub(crate) enum IntegerOffsetErrorImpl {
Conversion(isize),
Sub(usize, usize),
}
#[cfg(feature = "std")]
impl std::error::Error for IntegerOffsetError {}
mod fmt {
use super::*;
use std::fmt;
impl fmt::Display for IntegerOffsetError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self.0 {
IntegerOffsetErrorImpl::Conversion(del) => write!(
f,
"Offset could not be stored (offset of {} is too large)",
del
),
IntegerOffsetErrorImpl::Sub(a, b) => {
write!(f, "Difference is beween {} and {} overflows `isize`", a, b)
}
}
}
}
}