replace uarray with Pod

This commit is contained in:
Intege-rs
2024-11-14 06:18:44 -05:00
parent 8f36c0b996
commit 427eb56a50
3 changed files with 22 additions and 5 deletions

20
sub/core/src/pod.rs Normal file
View File

@@ -0,0 +1,20 @@
use core::mem::MaybeUninit;
/// Plain Old data type
pub trait Pod: Copy + 'static {
fn uninit() -> Self { unsafe { MaybeUninit::uninit().assume_init() } }
fn zeroed() -> Self { unsafe { MaybeUninit::zeroed().assume_init() } }
}
macro_rules! primitive {
($($p:ty),*) => {
$(impl Pod for $p {})*
}
}
primitive!(u8, u16, u32, u64, u128);
primitive!(i8, i16, i32, i64, i128);
primitive!(f32, f64, usize, isize);
primitive!(());
impl<const LEN: usize, T: Pod> Pod for [T;LEN] {}