Add just
: new constructor to IndexSet
and IndexMap
respectively
#331
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.
Adding a new constructor to IndexMap and IndexSet respectively:
just
accepting a single element.Rationale
The
indexset!
macro is great, but I did not know about it until just now, while implementing this PR. I think a named constructor has a visibility benefit, that merits its existence. I think a common Developer Experience is to discover constructors using code completion, using turbo fish.Also the docs of indexset type, does not even mention the macro - which ofc can be rectified with an update to the docs....
Constructors are also a crucial building in fuctional paradigms, such as
map
, here is an example:Here we can map the
Result<u8, _>
toIndexSet<u8>
using the new constructorjust
, and we note that of course this does not work with theindexset!
macro:Alternative
Other alternative names considered instead of
just
:single
only
with
from_just
,from_single
,from_only
with_just
,with_single
,with_only
But I deemed
just
most convenient and yet still clear.