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-literal
s 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.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…