mirror of
https://github.com/XTLS/Xray-core.git
synced 2025-04-30 01:08:33 +00:00
v1.0.0
This commit is contained in:
parent
47d23e9972
commit
c7f7c08ead
711 changed files with 82154 additions and 2 deletions
21
common/bitmask/byte.go
Normal file
21
common/bitmask/byte.go
Normal file
|
@ -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
|
||||
}
|
36
common/bitmask/byte_test.go
Normal file
36
common/bitmask/byte_test.go
Normal file
|
@ -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")
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue