Replace simple_sds_sbwt::bit_vector::BitVector types in the public-facing API with bitvec::vec::BitVec. Keep using simple_sds_sbwt bit vectors internally when rank/select support is needed.
Why?
- bitvec types are more standard and thus more likely interoperable with user code.
- bitvec has a richer API and is easier to work with.
This may introduce some overhead when converting between bitvec::vec::BitVec to simple_sds_sbwt::bit_vector::BitVector, but I think there is probably some way to just re-interpret the raw data as the other kind of bit vector.
Replace
simple_sds_sbwt::bit_vector::BitVectortypes in the public-facing API withbitvec::vec::BitVec. Keep using simple_sds_sbwt bit vectors internally when rank/select support is needed.Why?
This may introduce some overhead when converting between
bitvec::vec::BitVectosimple_sds_sbwt::bit_vector::BitVector, but I think there is probably some way to just re-interpret the raw data as the other kind of bit vector.