arena_alloc/
init.rs

1//! Initialization trait for types that require a circular reference to themselves upon initialization.
2
3use core::mem::MaybeUninit;
4
5/// A trait for initialization of a type that is stored in an arena and
6/// requires a circular reference to itself to initialize.
7pub trait Init {
8    type InitArg;
9
10    fn init(me: &mut MaybeUninit<Self>, arg: Self::InitArg)
11    where
12        Self: Sized;
13}