Stage

abstract class Stage<S : Stage<S>>

用于 StageLoop 中进行循环的状态集。 Stage 会被 StageLoop 的泛型所约束,通常情况下需要实现 Stage 并提供特定的类型界限,例如:

sealed class FooStage :  StageLoop.Stage<FooStage>() {
    object Start : FooStage() {
         override suspend fun invoke(loop: StageLoop<FooStage>) {
             loop.appendStage(Running("Hello", 1))
         }
    }

    class Running(val value: String, val times: Int) : FooStage() {
        override suspend fun invoke(loop: StageLoop<FooStage>) {
            if (times <= 5) {
                loop.appendStage(Running(value, times + 1))
            }
        }
    }
}

Constructors

Link copied to clipboard
fun Stage()

Functions

Link copied to clipboard
abstract suspend operator fun invoke(loop: StageLoop<S>)