Cell data
Cell data can be stored in a bitvector in two ways:
- Using low-order bits
- Using high-order bits
The key difference between these approaches lies in the use of the cellDataLength
field. When data is stored in the low-order bits, load expressions use the cellDataLength
field, whereas store expressions do not. Conversely, when data is stored in the high-order bits, store expressions use the cellDataLength
field, and load expressions do not.
Most of the time, bits are loaded from the input slices, where cellDataLength
is symbolic. For the builder, it is expected that the exact value of cellDataLength
will be often known. Therefore, it is preferable to store data in the high-order bits.