blob: dbdbfe8ebe021a457f7baf98c098b0102bf77c9d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
package generic
import Shapes.Singleton
trait Enum {
def enumTag: Int
}
trait FiniteEnum extends Enum
abstract class EnumValues[E <: Enum](numVals: Int) {
private var myValues = new Array[AnyRef](numVals)
def registerEnumValue(v: E) =
myValues(v.enumTag) = v
def value: IndexedSeq[E] = (myValues: IndexedSeq[AnyRef]).asInstanceOf[IndexedSeq[E]]
}
|