v1.0.0
This commit is contained in:
1 parent
47d23e9972
commit
c7f7c08ead
711 files changed
+82154
-2
No files matched your search
@@ -0,0 +1,21 @@
|
||||
package bitmask
|
||||
|
||||
// Byte is a bitmask in byte.
|
||||
type Byte byte
|
||||
|
||||
// Has returns true if this bitmask contains another bitmask.
|
||||
func (b Byte) Has(bb Byte) bool {
|
||||
return (b & bb) != 0
|
||||
}
|
||||
|
||||
func (b *Byte) Set(bb Byte) {
|
||||
*b |= bb
|
||||
}
|
||||
|
||||
func (b *Byte) Clear(bb Byte) {
|
||||
*b &= ^bb
|
||||
}
|
||||
|
||||
func (b *Byte) Toggle(bb Byte) {
|
||||
*b ^= bb
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package bitmask_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
. "github.com/xtls/xray-core/v1/common/bitmask"
|
||||
)
|
||||
|
||||
func TestBitmaskByte(t *testing.T) {
|
||||
b := Byte(0)
|
||||
b.Set(Byte(1))
|
||||
if !b.Has(1) {
|
||||
t.Fatal("expected ", b, " to contain 1, but actually not")
|
||||
}
|
||||
|
||||
b.Set(Byte(2))
|
||||
if !b.Has(2) {
|
||||
t.Fatal("expected ", b, " to contain 2, but actually not")
|
||||
}
|
||||
if !b.Has(1) {
|
||||
t.Fatal("expected ", b, " to contain 1, but actually not")
|
||||
}
|
||||
|
||||
b.Clear(Byte(1))
|
||||
if !b.Has(2) {
|
||||
t.Fatal("expected ", b, " to contain 2, but actually not")
|
||||
}
|
||||
if b.Has(1) {
|
||||
t.Fatal("expected ", b, " to not contain 1, but actually did")
|
||||
}
|
||||
|
||||
b.Toggle(Byte(2))
|
||||
if b.Has(2) {
|
||||
t.Fatal("expected ", b, " to not contain 2, but actually did")
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user