#![allow(clippy::missing_const_for_fn)]
#[cfg(rr)]
mod shims;
#[cfg_attr(rr, rr::params("l" : "loc", "n" : "Z", "i" : "Z", "vs"))]
#[cfg_attr(rr, rr::args("l", "i"))]
#[cfg_attr(rr, rr::requires(#type "l" : "vs" @ "value_t (UntypedSynType (mk_array_layout u8 (Z.to_nat n)))"))]
#[cfg_attr(rr, rr::requires("(0 ≤ i)%Z"))]
#[cfg_attr(rr, rr::requires("(i + 8 ≤ n)%Z"))]
#[cfg_attr(rr, rr::requires("(n ≤ MaxInt ISize)%Z"))]
#[cfg_attr(rr, rr::ensures(#type "l" : "vs" @ "value_t (UntypedSynType (mk_array_layout u8 (Z.to_nat n)))"))]
#[cfg_attr(rr, rr::exists("v" : "Z"))]
#[cfg_attr(rr, rr::returns("v"))]
#[inline(always)]
pub unsafe fn load64_raw(ptr: *const u8, at: usize) -> u64 {
let raw = unsafe { core::ptr::read_unaligned(ptr.add(at).cast::<u64>()) };
u64::from_le(raw)
}
#[cfg_attr(rr, rr::params("l" : "loc", "n" : "Z", "i" : "Z", "vs"))]
#[cfg_attr(rr, rr::args("l", "i"))]
#[cfg_attr(rr, rr::requires(#type "l" : "vs" @ "value_t (UntypedSynType (mk_array_layout u8 (Z.to_nat n)))"))]
#[cfg_attr(rr, rr::requires("(0 ≤ i)%Z"))]
#[cfg_attr(rr, rr::requires("(i + 4 ≤ n)%Z"))]
#[cfg_attr(rr, rr::requires("(n ≤ MaxInt ISize)%Z"))]
#[cfg_attr(rr, rr::ensures(#type "l" : "vs" @ "value_t (UntypedSynType (mk_array_layout u8 (Z.to_nat n)))"))]
#[cfg_attr(rr, rr::exists("v" : "Z"))]
#[cfg_attr(rr, rr::returns("v"))]
#[inline(always)]
pub unsafe fn load32_raw(ptr: *const u8, at: usize) -> u32 {
let raw = unsafe { core::ptr::read_unaligned(ptr.add(at).cast::<u32>()) };
u32::from_le(raw)
}
#[cfg_attr(rr, rr::params("l" : "loc", "n" : "Z", "i" : "Z", "vs"))]
#[cfg_attr(rr, rr::args("l", "i"))]
#[cfg_attr(rr, rr::requires(#type "l" : "vs" @ "value_t (UntypedSynType (mk_array_layout u8 (Z.to_nat n)))"))]
#[cfg_attr(rr, rr::requires("(0 ≤ i)%Z"))]
#[cfg_attr(rr, rr::requires("(i + 2 ≤ n)%Z"))]
#[cfg_attr(rr, rr::requires("(n ≤ MaxInt ISize)%Z"))]
#[cfg_attr(rr, rr::ensures(#type "l" : "vs" @ "value_t (UntypedSynType (mk_array_layout u8 (Z.to_nat n)))"))]
#[cfg_attr(rr, rr::exists("v" : "Z"))]
#[cfg_attr(rr, rr::returns("v"))]
#[inline(always)]
pub unsafe fn load16_raw(ptr: *const u8, at: usize) -> u16 {
let raw = unsafe { core::ptr::read_unaligned(ptr.add(at).cast::<u16>()) };
u16::from_le(raw)
}
#[cfg_attr(rr, rr::params("l" : "loc", "n" : "Z", "i" : "Z", "vs"))]
#[cfg_attr(rr, rr::args("l", "i"))]
#[cfg_attr(rr, rr::requires(#type "l" : "vs" @ "value_t (UntypedSynType (mk_array_layout u8 (Z.to_nat n)))"))]
#[cfg_attr(rr, rr::requires("(0 ≤ i)%Z"))]
#[cfg_attr(rr, rr::requires("(i + 1 ≤ n)%Z"))]
#[cfg_attr(rr, rr::requires("(n ≤ MaxInt ISize)%Z"))]
#[cfg_attr(rr, rr::ensures(#type "l" : "vs" @ "value_t (UntypedSynType (mk_array_layout u8 (Z.to_nat n)))"))]
#[cfg_attr(rr, rr::exists("v" : "Z"))]
#[cfg_attr(rr, rr::returns("v"))]
#[inline(always)]
pub unsafe fn load8_raw(ptr: *const u8, at: usize) -> u8 {
unsafe { core::ptr::read_unaligned(ptr.add(at)) }
}