fancy error printing done

This commit is contained in:
alexander.nutz
2024-03-29 12:21:09 +01:00
parent 355289716b
commit 19414c084c
12 changed files with 439 additions and 31 deletions

View File

@@ -0,0 +1,17 @@
package blitz.collections
fun <T> List<T>.inBounds(index: Int): Boolean {
if (index >= size)
return false
if (index < 0)
return false
return true
}
fun <T> Vec<T>.inBounds(index: Int): Boolean {
if (index >= size)
return false
if (index < 0)
return false
return true
}

View File

@@ -0,0 +1,22 @@
package blitz.collections
fun <T, G> Iterable<T>.mergeNeighbors(
to: MutableList<Pair<G, MutableList<T>>> = mutableListOf(),
by: (T) -> G
): MutableList<Pair<G, MutableList<T>>> {
val out = mutableListOf<Pair<G, MutableList<T>>>()
forEach {
val b = by(it)
if (b == out.lastOrNull()?.first)
out.last().second.add(it)
else
out.add(b to mutableListOf(it))
}
return out
}
fun <T, G> Sequence<T>.mergeNeighbors(
to: MutableList<Pair<G, MutableList<T>>> = mutableListOf(),
by: (T) -> G
): MutableList<Pair<G, MutableList<T>>> =
asIterable().mergeNeighbors(to, by)