MicroUtils/matrix/src/commonMain/kotlin/dev/inmo/micro_utils/matrix/RowBuilder.kt

15 lines
487 B
Kotlin
Raw Normal View History

2021-02-11 08:43:07 +00:00
package dev.inmo.micro_utils.matrix
class RowBuilder<T> {
private val mutRow: MutableList<T> = ArrayList()
val row: Row<T>
get() = mutRow
fun column(t: T) = mutRow.add(t)
operator fun T.unaryPlus() = column(this)
2021-02-11 08:43:07 +00:00
}
2021-02-11 09:05:11 +00:00
fun <T> row(block: RowBuilder<T>.() -> Unit): List<T> = RowBuilder<T>().also(block).row
fun <T> RowBuilder<T>.columns(elements: List<T>) = elements.forEach(::column)
fun <T> RowBuilder<T>.columns(vararg elements: T) = elements.forEach(::column)