From 9b30c3a155b2be23b854fbaf1a235045887d133b Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 29 Nov 2023 20:33:06 +0600 Subject: [PATCH] small matrix improvements --- .../kotlin/dev/inmo/micro_utils/matrix/MatrixBuilder.kt | 5 ++++- .../kotlin/dev/inmo/micro_utils/matrix/RowBuilder.kt | 5 +++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/matrix/src/commonMain/kotlin/dev/inmo/micro_utils/matrix/MatrixBuilder.kt b/matrix/src/commonMain/kotlin/dev/inmo/micro_utils/matrix/MatrixBuilder.kt index 6c5292f47ee..a218cefa6eb 100644 --- a/matrix/src/commonMain/kotlin/dev/inmo/micro_utils/matrix/MatrixBuilder.kt +++ b/matrix/src/commonMain/kotlin/dev/inmo/micro_utils/matrix/MatrixBuilder.kt @@ -1,12 +1,15 @@ package dev.inmo.micro_utils.matrix -class MatrixBuilder { +open class MatrixBuilder { private val mutMatrix: MutableList> = ArrayList() val matrix: Matrix get() = mutMatrix fun row(t: List) = mutMatrix.add(t) + fun add(t: List) = mutMatrix.add(t) operator fun List.unaryPlus() = row(this) + operator fun plus(t: List) = add(t) + operator fun T.unaryPlus() = add(listOf(this)) } fun MatrixBuilder.row(block: RowBuilder.() -> Unit) = +RowBuilder().also(block).row diff --git a/matrix/src/commonMain/kotlin/dev/inmo/micro_utils/matrix/RowBuilder.kt b/matrix/src/commonMain/kotlin/dev/inmo/micro_utils/matrix/RowBuilder.kt index f79a71ea2c5..f1b4fced24b 100644 --- a/matrix/src/commonMain/kotlin/dev/inmo/micro_utils/matrix/RowBuilder.kt +++ b/matrix/src/commonMain/kotlin/dev/inmo/micro_utils/matrix/RowBuilder.kt @@ -1,12 +1,13 @@ package dev.inmo.micro_utils.matrix -class RowBuilder { +open class RowBuilder { private val mutRow: MutableList = ArrayList() val row: Row get() = mutRow - fun column(t: T) = mutRow.add(t) + fun add(t: T) = mutRow.add(t) operator fun T.unaryPlus() = column(this) + fun column(t: T) = mutRow.add(t) } fun row(block: RowBuilder.() -> Unit): List = RowBuilder().also(block).row