doWhen

inline fun <I : T> doWhen(noinline filter: suspend (state: State) -> Boolean, handler: StatesHandler<I, T>)