Function konst::maybe_uninit::as_mut_ptr
source · pub const fn as_mut_ptr<T>(md: &mut MaybeUninit<T>) -> *mut T
Available on crate feature
mut_refs
only.Expand description
Const equivalent of MaybeUninit::as_mut_ptr
.
§Example
Initializing a #[repr(u8)]
enum
use std::mem::MaybeUninit;
use konst::maybe_uninit as mu;
const ENUM: Enum = {
let mut mu = MaybeUninit::<Enum>::uninit();
let ptr = mu::as_mut_ptr(&mut mu).cast::<MaybeUninit<Discr>>();
unsafe{
*ptr = MaybeUninit::new(Discr::Bar);
mu.assume_init()
}
};
unsafe {
assert_eq!(ENUM, Enum::Bar);
}
#[repr(u8)]
enum Discr {
Foo,
Bar,
Baz,
}
#[repr(u8)]
#[derive(Debug, PartialEq)]
enum Enum {
Foo(u8),
Bar,
Baz{s: String},
}