X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Futils%2FBooleans.kt;h=1d3e09715f2beb882b253ebe36c664793a8dae64;hp=3202b820196f67fd719fd3c2df0cfcdb7663a729;hb=HEAD;hpb=b51bf84d05e317d8a8179d72a788190b350a95a1 diff --git a/src/main/kotlin/net/pterodactylus/sone/utils/Booleans.kt b/src/main/kotlin/net/pterodactylus/sone/utils/Booleans.kt index 3202b82..1d3e097 100644 --- a/src/main/kotlin/net/pterodactylus/sone/utils/Booleans.kt +++ b/src/main/kotlin/net/pterodactylus/sone/utils/Booleans.kt @@ -4,3 +4,24 @@ package net.pterodactylus.sone.utils * Returns the value of [block] if `this` is true, returns `null` otherwise. */ fun Boolean.ifTrue(block: () -> R): R? = if (this) block() else null + +/** + * Returns the value of [block] if `this` is false, returns `null` otherwise. + */ +fun Boolean.ifFalse(block: () -> R): R? = if (!this) block() else null + +/** + * Returns `this` but runs the given block if `this` is `true`. + * + * @param block The block to run if `this` is `true` + * @return `this` + */ +fun Boolean.onTrue(block: () -> Unit): Boolean = also { if (this) block() } + +/** + * Returns `this` but runs the given block if `this` is `false`. + * + * @param block The block to run if `this` is `false` + * @return `this` + */ +fun Boolean.onFalse(block: () -> Unit): Boolean = this.also { if (!this) block() }