commonMain.com.github.mustafaozhan.scopemob.WhetherScope.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of scopemob-metadata Show documentation
Show all versions of scopemob-metadata Show documentation
Set of useful scope and higher-order functions
The newest version!
/*
Copyright (c) 2020 Mustafa Ozhan. All rights reserved.
*/
package com.github.mustafaozhan.scopemob
inline fun T.whether(
method: T.(condition: T) -> Boolean
): T? =
if (this != null && method(this)) {
this
} else {
null
}
inline fun T.whether(
vararg method: T.(condition: T) -> Boolean
): T? =
if (this != null) {
if (method.all { it(this) }) {
this
} else {
null
}
} else {
null
}
inline fun T.whetherNot(
method: T.(condition: T) -> Boolean
): T? =
if (this != null && !method(this)) {
this
} else {
null
}
inline fun T.whetherNot(
vararg method: T.(condition: T) -> Boolean
): T? =
if (this != null) {
if (!method.all { it(this) }) {
this
} else {
null
}
} else {
null
}