X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Futils%2FOptionals.kt;h=c8167b99146da0623f2449423b6f5b089ac980bb;hp=5f53ed03a54a3a0c1585a5e0afd329f0dd92a8d3;hb=505e16e44f6b5d6ece6845a50f3f561214cc5709;hpb=ce75a1d1a837cd33046c0da5098240c3629f7df7 diff --git a/src/main/kotlin/net/pterodactylus/sone/utils/Optionals.kt b/src/main/kotlin/net/pterodactylus/sone/utils/Optionals.kt index 5f53ed0..c8167b9 100644 --- a/src/main/kotlin/net/pterodactylus/sone/utils/Optionals.kt +++ b/src/main/kotlin/net/pterodactylus/sone/utils/Optionals.kt @@ -6,3 +6,6 @@ fun Optional.let(block: (T) -> R): R? = if (isPresent) block(get()) el fun Optional.also(block: (T) -> Unit) = if (isPresent) block(get()) else Unit fun T?.asOptional(): Optional = this?.let { Optional.of(it) } ?: Optional.absent() + +fun Iterable.mapPresent(transform: (T) -> Optional): List = + map(transform).filter { it.isPresent }.map { it.get() }