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