use self::super::{Error, guarded_transmute_many_permissive, guarded_transmute_many_pedantic, guarded_transmute_pedantic, guarded_transmute_many,
guarded_transmute};
#[cfg(feature = "std")]
use self::super::{guarded_transmute_vec_permissive, guarded_transmute_vec_pedantic, guarded_transmute_vec};
pub unsafe trait PodTransmutable: Copy {}
unsafe impl PodTransmutable for u8 {}
unsafe impl PodTransmutable for i8 {}
unsafe impl PodTransmutable for u16 {}
unsafe impl PodTransmutable for i16 {}
unsafe impl PodTransmutable for u32 {}
unsafe impl PodTransmutable for i32 {}
unsafe impl PodTransmutable for u64 {}
unsafe impl PodTransmutable for i64 {}
unsafe impl PodTransmutable for usize {}
unsafe impl PodTransmutable for isize {}
unsafe impl PodTransmutable for f32 {}
unsafe impl PodTransmutable for f64 {}
#[cfg(i128_type)]
unsafe impl PodTransmutable for u128 {}
#[cfg(i128_type)]
unsafe impl PodTransmutable for i128 {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 1] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 2] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 3] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 4] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 5] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 6] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 7] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 8] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 9] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 10] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 11] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 12] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 13] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 14] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 15] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 16] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 17] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 18] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 19] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 20] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 21] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 22] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 23] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 24] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 25] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 26] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 27] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 28] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 29] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 30] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 31] {}
unsafe impl<T: PodTransmutable> PodTransmutable for [T; 32] {}
pub fn guarded_transmute_pod<T: PodTransmutable>(bytes: &[u8]) -> Result<T, Error> {
unsafe { guarded_transmute(bytes) }
}
pub fn guarded_transmute_pod_pedantic<T: PodTransmutable>(bytes: &[u8]) -> Result<T, Error> {
unsafe { guarded_transmute_pedantic(bytes) }
}
pub fn guarded_transmute_pod_many<T: PodTransmutable>(bytes: &[u8]) -> Result<&[T], Error> {
unsafe { guarded_transmute_many(bytes) }
}
pub fn guarded_transmute_pod_many_permissive<T: PodTransmutable>(bytes: &[u8]) -> &[T] {
unsafe { guarded_transmute_many_permissive(bytes) }
}
pub fn guarded_transmute_pod_many_pedantic<T: PodTransmutable>(bytes: &[u8]) -> Result<&[T], Error> {
unsafe { guarded_transmute_many_pedantic(bytes) }
}
#[cfg(feature = "std")]
pub fn guarded_transmute_pod_vec<T: PodTransmutable>(bytes: Vec<u8>) -> Result<Vec<T>, Error> {
unsafe { guarded_transmute_vec(bytes) }
}
#[cfg(feature = "std")]
pub fn guarded_transmute_pod_vec_permissive<T: PodTransmutable>(bytes: Vec<u8>) -> Vec<T> {
unsafe { guarded_transmute_vec_permissive(bytes) }
}
#[cfg(feature = "std")]
pub fn guarded_transmute_pod_vec_pedantic<T: PodTransmutable>(bytes: Vec<u8>) -> Result<Vec<T>, Error> {
unsafe { guarded_transmute_vec_pedantic(bytes) }
}