Add fn replace_aliased(&self, usize, bool) -> bool
to BitSlice<T, O>
#284
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds the following methods to
BitSlice<T, O>
:fn replace_aliased(&self, usize, bool) -> bool
fn replace_aliased_unchecked(&self, usize, bool) -> bool
They are modeled after the existing
fn set_aliased()
/fn set_aliased_unchecked()
methods onBitSlice<T, O>
.The motivation behind these methods is to be able to use
BitVec<AtomicUsize>
for keeping track of "visited" nodes in a parallel graph traversal without the need of locking. As such you often need to atomically add a node to the "visited" set, while also find out if it had already been visited before (e.g. for avoiding performing redundant computations).