-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdynamic_test.go
120 lines (108 loc) · 2.44 KB
/
dynamic_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
package binflags_test
import (
"fmt"
"github.com/aohorodnyk/binflags"
)
var (
_ binflags.Flags = &binflags.Dynamic[int]{}
_ binflags.Flags = &binflags.Dynamic[uint]{}
_ binflags.Flags = &binflags.Dynamic[uint16]{}
_ binflags.Flags = &binflags.Dynamic[int16]{}
_ binflags.Flags = &binflags.Dynamic[byte]{}
)
func ExampleDynamic() {
flags := make(binflags.Dynamic[uint8], 3)
fmt.Println(flags)
fmt.Println(flags.Set(436235346))
fmt.Println(flags.Set(0))
fmt.Println(flags.Set(52))
fmt.Println(flags.Set(3462363))
fmt.Println(flags.Set(9874563524235))
fmt.Println(flags)
fmt.Println(flags.IsSet(0))
fmt.Println(flags.IsSet(52))
fmt.Println(flags.IsSet(3462363))
fmt.Println(flags.IsSet(9874563524235))
fmt.Println(flags.IsSet(436235346))
fmt.Println(flags.IsSet(1))
fmt.Println(flags.IsSet(436235345))
fmt.Println(flags.IsSet(436235347))
fmt.Println(flags.Unset(0))
fmt.Println(flags.Unset(9874563524235))
fmt.Println(flags.Unset(2523))
fmt.Println(flags)
// Output:
// map[]
// true
// true
// true
// true
// true
// map[0:1 6:16 432795:8 54529418:4 1234320440529:8]
// true
// true
// true
// true
// true
// false
// false
// false
// true
// true
// true
// map[6:16 432795:8 54529418:4]
}
func ExampleDynamic_IsSet() {
flags := binflags.Dynamic[uint8]{432795: 8, 54529418: 4, 1234320440529: 8}
fmt.Println(flags.IsSet(0))
fmt.Println(flags.IsSet(342))
fmt.Println(flags.IsSet(3462363))
fmt.Println(flags.IsSet(9874563524235))
fmt.Println(flags.IsSet(9874563524234))
fmt.Println(flags.IsSet(9874563524236))
// Output:
// false
// false
// true
// true
// false
// false
}
func ExampleDynamic_Unset() {
flags := binflags.Dynamic[uint8]{432795: 8, 54529418: 4, 1234320440529: 8}
fmt.Println(flags)
fmt.Println(flags.Unset(0))
fmt.Println(flags.Unset(342))
fmt.Println(flags.Unset(3462363))
fmt.Println(flags.Unset(9874563524235))
fmt.Println(flags.Unset(9874563524234))
fmt.Println(flags.Unset(9874563524236))
fmt.Println(flags)
// Output:
// map[432795:8 54529418:4 1234320440529:8]
// true
// true
// true
// true
// true
// true
// map[54529418:4]
}
func ExampleDynamic_Set() {
flags := binflags.Dynamic[uint8]{}
fmt.Println(flags.Set(234))
fmt.Println(flags.Set(65234))
fmt.Println(flags.Set(123))
fmt.Println(flags.Set(2))
fmt.Println(flags.Set(1))
fmt.Println(flags.Set(16))
fmt.Println(flags)
// Output:
// true
// true
// true
// true
// true
// true
// map[0:6 2:1 15:8 29:4 8154:4]
}