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)
|
i, _ := GetInt64(arr, LH)
|
||||||
return i
|
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()
|
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