diff --git a/util/src/main/java/dev/openrs2/util/collect/IterableUtils.kt b/util/src/main/java/dev/openrs2/util/collect/IterableUtils.kt index e59dc406..2146ed86 100644 --- a/util/src/main/java/dev/openrs2/util/collect/IterableUtils.kt +++ b/util/src/main/java/dev/openrs2/util/collect/IterableUtils.kt @@ -1,5 +1,21 @@ package dev.openrs2.util.collect +fun MutableIterable.removeFirst(): T { + return removeFirstOrNull() ?: throw NoSuchElementException() +} + +fun MutableIterable.removeFirstOrNull(): T? { + val iterator = iterator() + if (!iterator.hasNext()) { + return null + } + + val element = iterator.next() + iterator.remove() + + return element +} + inline fun MutableIterable.removeFirst(predicate: (T) -> Boolean): Boolean { val iterator = iterator() for (element in iterator) {