pub(crate) fn usize_to_u32(u: usize) -> Option<u32> {
#[cfg(not(no_try_from))]
{
use core::convert::TryFrom;
u32::try_from(u).ok()
}
#[cfg(no_try_from)]
{
use core::mem;
if mem::size_of::<usize>() <= mem::size_of::<u32>() || u <= u32::max_value() as usize {
Some(u as u32)
} else {
None
}
}
}