[][src]Module hypercore::bitfield

Bitfield module. Exposes {data, tree, index} internally. Serializable to disk.

TODO(yw): Document the magic mask format. (Will help to look at binary versions of the numbers).

TODO(yw): Document the use cases for this module, especially when opposed to sparse_bitfield.

NOTE(yw): in the JavaScript version, this code uses a single pager under the hood. Because of Rust's borrow rules, that would be tricky to pull off for us. So instead we've chosen to create three separate instances, with three separate pagers powering it. This means that when serializing to disk, we need to weave the contents of all three of the pagers into a single instance. And when restoring it from disk, we must do so again. We need to make sure the performance impact of this stays well within bounds.

Structs

Bitfield

Bitfield with {data, tree, index} fields.

SparseBitfield

Bitfield instance.

Enums

Change

Determine wether the bitfield.set() method changed the underlying value.