4 ms·
In python you could probably do def makeflag(): flag = 1 while True: yield flag flag = flag << 1 flag = makefla
by 50CNT 10y ago
In python you could probably do
def makeflag():
flag = 1
while True:
yield flag
flag = flag << 1
flag = makeflag()
E_GLASS_RN_STATE_INITIAL = next(flag)
E_GLASS_RN_STATE_WEAKENED = next(flag)
E_GLASS_RN_STATE_SHATTERING = next(flag)
E_GLASS_RN_STATE_ACTIVE_FRAGS = next(flag)
flag2 = makeflag()
UNRELATED_FLAG = next(flag2)
UNRELATED_FLAG = next(flag2)
Also no chance of fatfingering a number.
- deleted 10y ago[deleted]
- dalke 10y agoAnother option is to assume at most 128 bits then do something like: >>> _bitflags = [1<<i for i in range(128)] >>> (E_GLASS_RN_STATE_INITIAL, ... E_GLASS_RN_STATE_WEAKENED, ... E_GLASS_RN_STATE_SHATTERING, ... E_GLASS_RN_STATE_ACTIVE_FRAGS, ... *rest) = _bitflags >>> E_GLASS_RN_STATE_ACTIVE_FRAGS 8