pub type LifeCycleFn<S, T> = dyn FnMut(&mut S, &mut LifeCycleCtx<'_, '_>, &LifeCycle, &T, &Env) + 'static;