use crate::error::Error;
#[inline]
pub(crate) fn require_exact_len(data: &[u8], expected: usize, code: u8) -> Result<(), Error> {
if data.len() != expected {
return Err(Error::PayloadLength {
code,
expected,
got: data.len(),
});
}
Ok(())
}
#[inline]
pub(crate) fn require_at_least(data: &[u8], min: usize, code: u8) -> Result<(), Error> {
if data.len() < min {
return Err(Error::PayloadTooShort {
code,
min,
got: data.len(),
});
}
Ok(())
}
#[inline]
pub(crate) fn require_positive_multiple_of(
data: &[u8],
block: usize,
code: u8,
) -> Result<(), Error> {
if data.is_empty() || data.len() % block != 0 {
return Err(Error::PayloadNotMultiple {
code,
block,
got: data.len(),
});
}
Ok(())
}
#[inline]
pub(crate) fn require_multiple_of(data: &[u8], block: usize, code: u8) -> Result<(), Error> {
if data.len() % block != 0 {
return Err(Error::PayloadNotMultiple {
code,
block,
got: data.len(),
});
}
Ok(())
}