1using GLib;
2
3[Flags]
4enum Foo {
5	VAL1,
6	VAL2,
7	VAL3
8}
9
10void main () {
11	Foo foo, bar, baz;
12
13	foo = (Foo.VAL1 | Foo.VAL2 | Foo.VAL3);
14	bar = (Foo.VAL1 | Foo.VAL2);
15	baz = (bar | Foo.VAL3);
16
17	assert (Foo.VAL1 == 1 << 0);
18	assert (Foo.VAL2 == 1 << 1);
19	assert (Foo.VAL3 == 1 << 2);
20
21	assert (Foo.VAL1 in bar);
22	assert ((Foo.VAL1 | Foo.VAL2) in bar);
23	assert (!(Foo.VAL3 in bar));
24
25	assert (Foo.VAL1 in baz);
26	assert (Foo.VAL2 in baz);
27	assert (Foo.VAL3 in baz);
28
29	assert (bar in foo);
30}
31
32