pub(super) type StateTransitionFunction<S> = Arc<dyn for<'a> Fn(&'a mut ClientSMDatabaseTransaction<'_, '_>, Value, S) -> BoxFuture<'a, S> + Send + Sync>;
struct StateTransitionFunction<S> { /* private fields */ }