~We want to merge #3576 and #3575 before we merge this.~
~Likely to be some conflicts as I pulled those changes out as separate PRs.~
Lets us do the following -
let bitmap: Bitmap = prune_list
.unpruned_leaf_iter(cutoff_pos)
.collect();
Which is a really convenient way of producing a bitmap representing unpruned leaf positions based on a prune_list.
This in effect "inverts" the prune_list giving the leaves that remain after pruning.
We can take advantage of this for more efficient pruning/compaction.
It is possible to efficiently compute the difference between what was pruned last time and what needs to be pruned this time -
~We want to merge #3576 and #3575 before we merge this.~ ~Likely to be some conflicts as I pulled those changes out as separate PRs.~
Lets us do the following -
Which is a really convenient way of producing a bitmap representing unpruned leaf positions based on a prune_list. This in effect "inverts" the prune_list giving the leaves that remain after pruning.
We can take advantage of this for more efficient pruning/compaction.
It is possible to efficiently compute the difference between what was pruned last time and what needs to be pruned this time -