pub trait DeferredInitialization { type Initialized; fn initialize(self) -> Result<Self::Initialized>; }