RustCrypto/traits

Tracking issue for migrating from `hybrid-array` to const generic core arrays

tarcieri opened this issue · 0 comments

Note: continuation of #970

We recently replaced generic-array with hybrid-array, which hopefully improves overall ergonomics, but ideally we wouldn't need typenum at all and could express all of our constraints using const generics.

This issue tracks the features in core that would need to be stabilized before we can phase out hybrid-array in favor of const generics and core arrays:

The first issue (60551) is arguably the biggest blocker. All of the trait crates defined in this repo use associated ArraySize types which would be best replaced by associated constants. While it would be possible to switch from associated constants to const generic parameters, this has all the drawbacks of using explicit generic parameters versus families of them expressed as associated types. It becomes quite unwieldy when there are several of them involved. Our use cases benefit from these constants being "carried along" with another generic parameter, so it would be best to wait until this feature is implemented.

The second issue (76560) is important because we do quite a bit of arithmetic with typenum.