enum

fun <T : Enum<T>> enum(kClass: KClass<T>, enumValues: Array<T>, block: EnumDSL<T>.() -> Unit? = null)
inline fun <T : Enum<T>> enum(noinline block: EnumDSL<T>.() -> Unit? = null)