You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
So now that @spastorino and @Nashenas88 have converted so much of the compiler to use newtype_index!, I was thinking that we could change the implementation of all these index types from struct Foo(u32) to struct Foo(Nonzero<u32>). This would require adding (and subtracting) 1 internally to convert from the actual index into its internal representation, but it would have the bonus that we could Option<I> for some index type I would still be a single u32-sized value.
This is somewhat hindered by the fact that at least one of these "newtype'd index" types has a public field. We should see if we can change that.
(And , of course, what I really want is something like Nonmax that uses u32::MAX as the sentinel value, since that is not a useful index.)
cc @arielb1, with whom I was discussing this general theme before. Think this could be a good idea? I'm not sure how much people really use Option<I>.
Activity
spastorino commentedon Nov 11, 2017
Hey @nikomatsakis @arielb1, I can make this change but please confirm that we really want to do it before I ahead and provide a PR 😄.
cuviper commentedon Sep 1, 2020
I believe this has been implemented since #54032, commit 06a041c.