use std::mem::size_of;
use crate::error::{Error, Result};
pub(crate) fn to_u64(value: impl TryInto<u64>, name: &str) -> Result<u64> {
value
.try_into()
.map_err(|_| Error::OutOfRange { name: name.into() })
}
pub(crate) fn to_u32(value: impl TryInto<u32>, name: &str) -> Result<u32> {
value
.try_into()
.map_err(|_| Error::OutOfRange { name: name.into() })
}
pub(crate) fn to_usize(value: impl TryInto<usize>, name: &str) -> Result<usize> {
value
.try_into()
.map_err(|_| Error::OutOfRange { name: name.into() })
}
pub(crate) fn checked_byte_len<T>(count: usize, name: &str) -> Result<usize> {
count
.checked_mul(size_of::<T>())
.ok_or(Error::OutOfRange { name: name.into() })
}