I decided I didn't like calculating masks and offsets anymore. You can come along too.
A simple solution I use when I don't need named bits is to just make small helper functions for std/bitops so you can access bits like an array. Thoughts?
var v = 0
v[2 .. 6] = 0b10101
assert v == 0b0101_0100
assert v[2] == true
assert 0b1010[0 .. 2] == 0b010