replace uarray with Pod
This commit is contained in:
@@ -45,7 +45,3 @@ pub fn distance(p1: impl As<usize>, p2: impl As<usize>) -> usize {
|
||||
Ordering::Equal => 0,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn uarray<const LEN: usize, T: Sized>() -> [T;LEN] {
|
||||
unsafe { MaybeUninit::uninit().assume_init() }
|
||||
}
|
||||
@@ -5,6 +5,7 @@
|
||||
// Internal modules
|
||||
//
|
||||
pub mod cast_traits;
|
||||
pub mod pod;
|
||||
pub mod data;
|
||||
pub mod arrays;
|
||||
pub mod branching;
|
||||
@@ -33,7 +34,6 @@ pub mod prelude {
|
||||
slicify_mut,
|
||||
statify,
|
||||
statify_mut,
|
||||
uarray
|
||||
};
|
||||
pub use crate::arrays::{
|
||||
fill_with,
|
||||
@@ -50,6 +50,7 @@ pub mod prelude {
|
||||
pub use crate::time::dur;
|
||||
pub use crate::fnv1::*;
|
||||
pub use crate::pstruct::struct_offset;
|
||||
pub use crate::pod::Pod;
|
||||
}
|
||||
|
||||
pub mod public {
|
||||
|
||||
20
sub/core/src/pod.rs
Normal file
20
sub/core/src/pod.rs
Normal 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] {}
|
||||
Reference in New Issue
Block a user