14 lines
393 B
Kotlin
14 lines
393 B
Kotlin
package net.shadowfacts.phycon.util
|
|
|
|
/**
|
|
* @author shadowfacts
|
|
*/
|
|
interface RotatableEnum {
|
|
}
|
|
|
|
val <E> E.prev: E where E: Enum<E>, E: RotatableEnum
|
|
get() = javaClass.enumConstants[(ordinal - 1 + javaClass.enumConstants.size) % javaClass.enumConstants.size]
|
|
|
|
val <E> E.next: E where E: Enum<E>, E: RotatableEnum
|
|
get() = javaClass.enumConstants[(ordinal + 1) % javaClass.enumConstants.size]
|