> > -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)
> > }
> > }