> > -impl<'a, T> ParentInit<'a, T> { > > +impl<'init, T> ParentInit<'init, T> { > > #[inline] > > - pub fn with(obj: &'a mut MaybeUninit<T>, f: impl FnOnce(ParentInit<'a, > > T>)) { > > - let parent_init = ParentInit(obj); > > + pub fn with(obj: &'init mut MaybeUninit<T>, f: impl for<'id> > > FnOnce(ParentInit<'id, T>)) { > > + let parent_init = ParentInit(obj, PhantomData); > > I think it's also valuable to add the similar comment as GhostToken did, > mentioning this `f` can't reture ParentInit itself.
My bad, I forgot there's no returned value... > > f(parent_init) > > } > > }