diff options
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/utils')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt index e90f8ee34..2e71ab2fa 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt @@ -537,4 +537,13 @@ object LorenzUtils { @Deprecated("Dont use this approach at all. check with regex or equals instead.", ReplaceWith("Regex or equals")) fun Iterable<String>.anyContains(element: String) = any { it.contains(element) } + + inline fun <reified T : Enum<T>> enumValueOfOrNull(name: String): T? { + val enums = enumValues<T>() + return enums.firstOrNull { it.name == name } + } + + inline fun <reified T : Enum<T>> enumValueOf(name: String) = + enumValueOfOrNull<T>(name) + ?: kotlin.error("Unknown enum constant for ${enumValues<T>().first().name.javaClass.simpleName}: '$name'") } |
