Raw value for enum case must be a literal

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.

Leave a Comment