fix static asserts

This commit is contained in:
nora 2022-04-04 18:59:09 +02:00
parent 2eddd0949d
commit f7e2adc7c1

View file

@ -24,18 +24,15 @@ pub trait Backend<T> {
} }
#[allow(dead_code)] // :/ #[allow(dead_code)] // :/
const fn assert_size<B>() const fn assert_same_size<A, B>() {
where let has_equal_size = mem::size_of::<A>() == mem::size_of::<B>();
B: Backend<()>,
{
let has_equal_size = mem::size_of::<B>() == mem::size_of::<B::Stored>();
assert!(has_equal_size); assert!(has_equal_size);
} }
#[cfg(not(target_pointer_width = "16"))] #[cfg(not(target_pointer_width = "16"))]
const _: () = assert_size::<u128>(); const _: () = assert_same_size::<u128, <u128 as Backend<()>>::Stored>();
const _: () = assert_size::<u64>(); const _: () = assert_same_size::<u64, <u64 as Backend<()>>::Stored>();
const _: () = assert_size::<usize>(); const _: () = assert_same_size::<usize, <usize as Backend<()>>::Stored>();
impl<T> Backend<T> for usize { impl<T> Backend<T> for usize {
type Stored = *mut T; type Stored = *mut T;