Made ArrayVec::new and ArrayString::new const fns

Added utils module with a `MaybeUninit` helper type to construct `[MaybeUninit<T>; N]`

Removed all uses of the "unstable-const-fn" feature, and documented it as being deprecated.

Changed `assert_capacity_limit` macro to work in const contexts.
This commit is contained in:
rodrimati1992
2021-03-28 14:48:27 -03:00
parent 9ac0b2057f
commit 5ad4687b1b
4 changed files with 20 additions and 31 deletions
+11
View File
@@ -0,0 +1,11 @@
use std::marker::PhantomData;
use std::mem::MaybeUninit;
pub(crate) struct MakeMaybeUninit<T, const N: usize>(PhantomData<fn() -> T>);
impl<T, const N: usize> MakeMaybeUninit<T, N> {
pub(crate) const VALUE: MaybeUninit<T> = MaybeUninit::uninit();
pub(crate) const ARRAY: [MaybeUninit<T>; N] = [Self::VALUE; N];
}