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

View File

@@ -45,7 +45,3 @@ pub fn distance(p1: impl As<usize>, p2: impl As<usize>) -> usize {
Ordering::Equal => 0, Ordering::Equal => 0,
} }
} }
pub fn uarray<const LEN: usize, T: Sized>() -> [T;LEN] {
unsafe { MaybeUninit::uninit().assume_init() }
}

View File

@@ -5,6 +5,7 @@
// Internal modules // Internal modules
// //
pub mod cast_traits; pub mod cast_traits;
pub mod pod;
pub mod data; pub mod data;
pub mod arrays; pub mod arrays;
pub mod branching; pub mod branching;
@@ -33,7 +34,6 @@ pub mod prelude {
slicify_mut, slicify_mut,
statify, statify,
statify_mut, statify_mut,
uarray
}; };
pub use crate::arrays::{ pub use crate::arrays::{
fill_with, fill_with,
@@ -50,6 +50,7 @@ pub mod prelude {
pub use crate::time::dur; pub use crate::time::dur;
pub use crate::fnv1::*; pub use crate::fnv1::*;
pub use crate::pstruct::struct_offset; pub use crate::pstruct::struct_offset;
pub use crate::pod::Pod;
} }
pub mod public { pub mod public {

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] {}