Add choose_index
-- a generalization of choose
#105
Merged
+45
−3
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.
choose
comes only in one modality -- selecting a shared reference.Often one wants an exclusive reference or maybe even to take ownership.
Rather than adding all those flavors, let's expose a function to
generate an index, the caller would then be able to DIY the rest.
Of course, the caller can open-code
u.gen_int(0..=array.len() - 1)
themselves, but
-1
is annoying, and that'll also panic if the arrayturns out to be empty. With
choose_index
, we can re-use theEmptyChoice
error.