package types type BitMask interface { HasFlag(bit MaskBit) bool AddFlag(bit MaskBit) ClearFlag(bit MaskBit) ToggleFlag(bit MaskBit) } // BitMasks type MaskBit uint8 func (f MaskBit) HasFlag(flag MaskBit) (r bool) { if f&flag != 0 { r = true } return } func (f *MaskBit) AddFlag(flag MaskBit) { *f |= flag return } func (f *MaskBit) ClearFlag(flag MaskBit) { *f &= flag return } func (f *MaskBit) ToggleFlag(flag MaskBit) { *f ^= flag return }