I have this enum:
enum GestureDirection:UInt {
case Up = 1 << 0
case Down = 1 << 1
case Left = 1 << 2
case Right
That's because 1 << 0 isn't a literal. You can use a binary literal which is a literal and is allowed there:
enum GestureDirection:UInt {
case Up = 0b000
case Down = 0b001
case Left = 0b010
case Right = 0b100
}
Enums only support raw-value-literals which are either numeric-literal (numbers) string-literal (strings) or boolean-literal (bool) per the language grammar.
Instead as a workaround and still give a good indication of what you're doing.