1use std::mem::MaybeUninit;
2
3use crate::{
4 ops::place::{
5 PlaceWrapper,
6 WrapPlace,
7 },
8 place::{
9 Subplace,
10 TransmutedSubplace,
11 },
12};
13
14impl<T> PlaceWrapper for MaybeUninit<T> {
15 type Inner = T;
16}
17
18unsafe impl<S> WrapPlace<S> for MaybeUninit<S::Source>
19where
20 S: Subplace,
21 S::Source: Sized,
22 S::Target: Sized,
23{
24 type Wrapped =
25 TransmutedSubplace<S, MaybeUninit<S::Source>, MaybeUninit<S::Target>>;
26
27 fn wrap(subplace: S) -> Self::Wrapped {
28 unsafe { TransmutedSubplace::new_unchecked(subplace) }
29 }
30}