#![no_std]
#![doc = include_str!("../README.md")]
#[cfg(feature = "derive")]
pub use unscrupulous_derive::Unscrupulous;
pub unsafe trait Unscrupulous {}
pub const fn as_slice_of_bytes<T: Unscrupulous>(x: &T) -> &[u8] {
let x = core::ptr::from_ref(x).cast();
unsafe { core::slice::from_raw_parts(x, core::mem::size_of::<T>()) }
}
unsafe impl<T: Unscrupulous, const N: usize> Unscrupulous for [T; N] {}
unsafe impl Unscrupulous for bool {}
unsafe impl Unscrupulous for char {}
unsafe impl Unscrupulous for f32 {}
unsafe impl Unscrupulous for f64 {}
unsafe impl Unscrupulous for u8 {}
unsafe impl Unscrupulous for i8 {}
unsafe impl Unscrupulous for u16 {}
unsafe impl Unscrupulous for i16 {}
unsafe impl Unscrupulous for u32 {}
unsafe impl Unscrupulous for i32 {}
unsafe impl Unscrupulous for u64 {}
unsafe impl Unscrupulous for i64 {}
unsafe impl Unscrupulous for u128 {}
unsafe impl Unscrupulous for i128 {}
unsafe impl Unscrupulous for core::num::NonZeroU8 {}
unsafe impl Unscrupulous for core::num::NonZeroI8 {}
unsafe impl Unscrupulous for core::num::NonZeroU16 {}
unsafe impl Unscrupulous for core::num::NonZeroI16 {}
unsafe impl Unscrupulous for core::num::NonZeroU32 {}
unsafe impl Unscrupulous for core::num::NonZeroI32 {}
unsafe impl Unscrupulous for core::num::NonZeroU64 {}
unsafe impl Unscrupulous for core::num::NonZeroI64 {}
unsafe impl Unscrupulous for core::num::NonZeroU128 {}
unsafe impl Unscrupulous for core::num::NonZeroI128 {}