See #87 (comment)
I assume we could still do things in parallel if we want.
We could create a DisjointViews (or so) struct that holds non-overlapping ArrayBytesFixedDisjointViews and has a safe fn add(&mut self, ...) -> bool that returns if a region was safely added (would not overlap with the already contained regions) or not. Then at runtime,
- create a
Vec<DisjointViews> by first trying to add each view to the first DisjointViews object, then the second, … until each view has been added.
- go over the vec and handle each
DisjointViews object in parallel.
There could be pathological cases where that doesn’t work well, but in practice, those shouldn’t happen
See #87 (comment)
I assume we could still do things in parallel if we want.
We could create a
DisjointViews(or so) struct that holds non-overlappingArrayBytesFixedDisjointViews and has a safefn add(&mut self, ...) -> boolthat returns if a region was safely added (would not overlap with the already contained regions) or not. Then at runtime,Vec<DisjointViews>by first trying to add each view to the firstDisjointViewsobject, then the second, … until each view has been added.DisjointViewsobject in parallel.There could be pathological cases where that doesn’t work well, but in practice, those shouldn’t happen