v / vlib / v2 / gen / cleanc / tests / flag_enum.v
27 lines · 23 sloc · 421 bytes · cd518ca93cb73cc164af43c1a07f74a9240b433b
Raw
1module main
2
3@[flag]
4enum Perms {
5 read
6 write
7 execute
8}
9
10fn main() {
11 // .has() and .all()
12 mut p := Perms.read | Perms.write
13 println(p.has(.read))
14 println(p.has(.execute))
15 println(p.all(.read | .write))
16 println(p.all(.read | .execute))
17
18 // .set()
19 p.set(.execute)
20 println(p.has(.execute))
21 println(p.all(.read | .write | .execute))
22
23 // .clear()
24 p.clear(.write)
25 println(p.has(.write))
26 println(p.has(.read))
27}
28