Minor sanity features for bit_set

This commit is contained in:
gingerBill
2018-08-14 19:22:48 +01:00
parent c7d6467cfa
commit 71f94bff76
5 changed files with 68 additions and 43 deletions
+48 -19
View File
@@ -713,29 +713,58 @@ deprecated_attribute :: proc() {
}
bit_set_type :: proc() {
using Day :: enum {
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
{
using Day :: enum {
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
}
Days :: distinct bit_set[Day];
WEEKEND :: Days{Sunday, Saturday};
d: Days;
d = Days{Sunday} | Days{Monday};
x := Tuesday;
e := d | WEEKEND;
e |= {Monday};
fmt.println(d, e);
ok := Saturday in e; // `in` is only allowed for `map` and `bit_set` types
fmt.println(ok);
if Saturday in e {
fmt.println("Saturday in", e);
}
}
{
using Days :: bit_set {
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
}
Days :: distinct bit_set[Day];
WEEKEND :: Days{Sunday, Saturday};
WEEKEND :: Days{Sunday, Saturday};
d: Days;
d = Days{Sunday} | Days{Monday};
x := Tuesday;
e := d | WEEKEND;
fmt.println(d, e);
d: Days;
d = Days{Sunday} | Days{Monday};
x := Tuesday;
e := d | WEEKEND;
e |= {Monday};
fmt.println(d, e);
ok := Saturday in e; // `in` is only allowed for `map` and `bit_set` types
fmt.println(ok);
if Saturday in e {
fmt.println("Saturday in", e);
ok := Saturday in e; // `in` is only allowed for `map` and `bit_set` types
fmt.println(ok);
if Saturday in e {
fmt.println("Saturday in", e);
}
}
}