generateBitFields

Generate code for bit fields inside a struct/class body

extern (D)
string
generateBitFields
(
S
T
)
()
if (
__traits(isUnsigned, T)
)

Parameters

S

type of a struct with only boolean fields, which should become bit fields

T

type of bit fields variable, must have enough bits to store all booleans

Return Value

Type: string

D code with a bit fields variable and getter / setter functions

Examples

static struct B
{
    bool x;
    bool y;
    bool z = 1;
}

static struct S
{
    mixin(generateBitFields!(B, ubyte));
}

S s;
assert(!s.x);
s.x = true;
assert(s.x);
s.x = false;
assert(!s.x);

s.y = true;
assert(s.y);
assert(!s.x);
assert(s.z);

Meta