added flags operations
This commit is contained in:
14
bin.go
14
bin.go
@@ -1536,3 +1536,17 @@ func Uint64AsInt64(u uint64) int64 {
|
||||
i, _ := GetInt64(arr, LH)
|
||||
return i
|
||||
}
|
||||
|
||||
// FLAGS
|
||||
|
||||
func IsSetFlag(flags byte, flag byte) bool {
|
||||
return (flags & flag) == flag
|
||||
}
|
||||
|
||||
func SetFlag(flags byte, flag byte) byte {
|
||||
return flags | flag
|
||||
}
|
||||
|
||||
func UnsetFlag(flags byte, flag byte) byte {
|
||||
return flags & ^flag
|
||||
}
|
||||
|
||||
12
bin_test.go
12
bin_test.go
@@ -703,3 +703,15 @@ func TestVarSize(t *testing.T) {
|
||||
buf.Reset()
|
||||
}
|
||||
}
|
||||
|
||||
// func TestSetUnsetFlag(t *testing.T) {
|
||||
// var (
|
||||
// flag byte = 2
|
||||
// flags byte = flag
|
||||
// )
|
||||
|
||||
// flags &= ^flag
|
||||
|
||||
// fmt.Printf("%b\n", ^flag)
|
||||
// fmt.Printf("%b\n", UnsetFlag(flags, flag))
|
||||
// }
|
||||
|
||||
Reference in New Issue
Block a user