use std::fmt;
pub const MAX_REQUEST_BYTES: usize = isize::MAX as usize;
pub type Result<T> = std::result::Result<T, Error>;
#[derive(Debug)]
pub enum Error {
RequestedLengthTooLarge {
requested: usize,
},
InvalidAlignment {
alignment: usize,
},
}
impl fmt::Display for Error {
fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::RequestedLengthTooLarge { requested } => write!(
formatter,
"requested buffer length {requested} exceeds the safe slice limit. Fix: request at most {MAX_REQUEST_BYTES} bytes."
),
Self::InvalidAlignment { alignment } => write!(
formatter,
"alignment {alignment} is not a power of two. Fix: use an alignment that is a power of two (1, 2, 4, 8, 16, 32, 64, ...)."
),
}
}
}
impl std::error::Error for Error {}