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>)