11.12. Bitfield name traits

The BITFIELD_TRAIT module implements reflection utilities for bitfield types: converting bitfield values to and from human-readable strings, iterating over individual set bits, and constructing bitfield values from string names.

All functions and symbols are in “bitfield_trait” module, use require to get access to it.

require daslib/bitfield_trait

11.12.1. Function annotations

bitfield_trait.EachBitfieldMacro
This macro converts each(bitfield) to the following code::
generator<string>() <|

yield field1 yield field2 … return false

bitfield_trait.EachBitNameBitfieldMacro
This macro converts each(bitfield) to the following code::
generator<string>() <|

yield “field1” yield “field2” … return false

11.12.2. Iteration

bitfield_trait.each(argT: auto): auto

Iterates over the names of a bitfield type, yielding each bit as a bitfield value (1ul << bitIndex).

Arguments:
  • argT : auto

bitfield_trait.each_bit_name(argT: auto): auto

Iterates over the names of a bitfield type, yielding each bit name as a string.

Arguments:
  • argT : auto