commonMain.kase.progress.ProgressionConstructors.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of kase-core Show documentation
Show all versions of kase-core Show documentation
A kotlin multiplatform library to present common UI states
@file:Suppress("NOTHING_TO_INLINE")
package kase.progress
import kase.ProgressionStageBuilder
import kase.internal.SimpleNumberProgressionImpl
inline fun Progression(
done: Number,
total: Number
): SimpleProgression = SimpleNumberProgressionImpl(done, total)
fun Progression(vararg stages: String) : List> {
val builder = StageProgressionBuilder(stages)
return builder.stages
}
class StageProgressionBuilder(private val names: Array) {
val stages = names.mapIndexed { index, s -> ProgressionStageBuilderImpl(s, index) }
inner class ProgressionStageBuilderImpl(
val name: String,
val index: Int
) : ProgressionStageBuilder {
override fun invoke(done: T, total: T): SimpleProgression {
TODO()
}
}
}