Jan
02/03/2022, 3:21 PMinline fun <V, reified T> enum(name: String, description: String, required: Boolean = false) where T : EnumWithValue<V>, T : Enum<T> {
val values = enumValues<T>()
when(values[0].value) {
is Int -> int(name, description, required) {
values.forEach { enum -> choice(enum.name, enum.value as Int) }
}
is Double -> number(name, description, required) {
values.forEach { enum -> choice(enum.name, enum.value as Double) }
}
is String -> string(name, description, required) {
values.forEach { enum -> choice(enum.name, enum.value as String) }
}
else -> throw IllegalArgumentException("Enum values must be of type Int, Double or String")
}
}
Kirill Grouchnikov
02/03/2022, 3:27 PMenum
is a reserved keyword. Is it the same if you rename the function name and all inner enum
params to something else?Jan
02/03/2022, 3:32 PMMichael de Kaste
02/03/2022, 4:08 PMJan
02/03/2022, 4:25 PMwhere T : EnumWithValue<V>, T : Enum<T>
hho
02/04/2022, 8:33 AM