* integrate generic posting list in full-text index
* improve intersection fn
improve iterator intersection
* make old module just for test
* recover old implementation of MmapPostings for tests
* add compatibility test
* fix compression
* clippy
* nits
* check if first id is already greater
protects against the case where the iterator's current element hasn't
been extracted yet
* update current element when there is no greater or equal
* reuse visitor in test
* optimize alignment
* bound checks and refactor is_in_range
* review
* edit comment
---------
Co-authored-by: generall <andrey@vasnetsov.com>
* use chunks_exact in compressed sparse posting list builder
* generalized impls
make both impls similar
new design
make impls similar
generalize impls
* separate into files in new crate
* additional builder fns
new fn for builder
* retrieve current iterator position
* simplify traits
* restructure
* add iterator
* clippy
add contains fn
* fix find_chunk
* move builders to builder
* revamp generics and traits
* add model test vs var-sized posting list
* fmt
* clippy
* improve traits and generics
* fix get_by_offset
* generalize tests
* improve test
* restructure view into a new file
* to and from components
* value handler takes closure to prevent perf penalty
* clippy
* remove unused deps
* revert changes in sparse index
* self review nits
* reword
* clippy
* edit comment
* lock CHUNK_LEN, but assert it is synced with BitPacker4x
* remove Sized constraint in iterator
* rename VarSized* to Unsized*
And add more from_components helpers
* avoid intermediate allocation when writing UnsizedValue
* checked u32 conversions
* fix test
* clippy
* Add debug assertion, assert that point ID is in range
* Bound check in get_by_offset
* improve tests to check against various lengths and offsets
* clippy 😤
---------
Co-authored-by: timvisee <tim@visee.me>