This for example is now how the bitfields work: https://github.com/diondokter/device-driver/blob/experiment/src/lib.rs#L219-L235 Basically you return a `Field` object that is generic over: 1. The self lifetime 2. The Self register (to access the data buffer of the register) 3. The type this register represents 4. The integer type used to back the previously mentioned type 5. The start bit index 6. The (exclusive) end bit index