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]
|