summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/utils')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt9
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'")
}