Bernhard
07/28/2024, 1:10 PMfun String.toEnumConstant(): String =
this.split("(?=\\p{Upper})".toRegex())
.joinToString("_") { it.uppercase() }
@OptIn(ExperimentalStdlibApi::class)
inline fun <reified T : Enum<T>> Enum.Companion.fromLowercaseString(value: String): T? =
enumEntries<T>().find { it.name == value.toEnumConstant() }
enum class Values {
TEST
}
println(Values.fromLowercaseString("test"))
Youssef Shoaib [MOD]
07/28/2024, 1:16 PMimport kotlin.enums.*
fun String.toEnumConstant(): String =
this.split("(?=\\p{Upper})".toRegex())
.joinToString("_") { it.uppercase() }
@OptIn(ExperimentalStdlibApi::class)
inline fun <reified T : Enum<T>> fromLowercaseString(value: String): T? =
enumEntries<T>().find { it.name == value.toEnumConstant() }
enum class Values {
TEST
}
fun main() {
println(fromLowercaseString<Values>("test"))
}
Not sure if there's a simple way to have it work for every companion of every enum thoughBernhard
07/28/2024, 1:18 PMBernhard
07/28/2024, 1:23 PMBernhard
07/28/2024, 1:23 PMBernhard
07/28/2024, 1:24 PMephemient
07/28/2024, 6:58 PM