I also hit a funny compiler end-of-the road last month when I wanted to try out generic_const_exprs for my RFC8366 implementation:
pub struct VoucherDetails<C>
where
C: CapacityConfig,
[(); C::SERIAL_NUMBER_MAX]:,
[(); C::MANUFACTURER_PRIVATE_MAX]:,
[(); C::IDEVID_ISSUER_MAX]:,
// <imagine a dozen more properties here>
[(); C::NONCE_B64_MAX]:,
{ ... }
The heavy const eval + trait resolution was too much even for my M2 Pro.This was incredible, even as it rapidly outpaced my PL and mathematics knowledge.
I've been playing around with type mapping like this in a highly experimental crate. The ability to map, filter and reduce types is insanely powerful but it's tough to get ergonomic syntax.
https://docs.rs/tuplemagic/latest/tuplemagic/index.html