jay-compositor 1.15.0

The Jay compositor
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use std::mem;
use std::mem::MaybeUninit;

pub trait MaybeUninitSliceExt2<const N: usize> {
    fn cast_mut<U>(&mut self) -> &mut [MaybeUninit<U>; N];
}

impl<T, const N: usize> MaybeUninitSliceExt2<N> for [MaybeUninit<T>; N] {
    fn cast_mut<U>(&mut self) -> &mut [MaybeUninit<U>; N] {
        const {
            assert!(size_of::<U>() <= size_of::<T>());
            assert!(align_of::<U>() <= align_of::<T>());
        }
        unsafe { mem::transmute(self) }
    }
}