Implement Vec::drain, as_(mut_)view on the *Inner types, generic over Storage#500
Conversation
Vec::drain, as_(mut_)view the *Inner types, generic over StorageVec::drain, as_(mut_)view on the *Inner types, generic over Storage
|
I checked with nightly, we can't do that with just a |
2f7f596 to
f40513e
Compare
f40513e to
1ce08b4
Compare
1ce08b4 to
896bf6b
Compare
dd08393 to
e4de53b
Compare
c411836 to
eb0fc28
Compare
|
To get it working with |
eb0fc28 to
729db74
Compare
729db74 to
85e947f
Compare
|
The cpass tests are blocked by a compiler bug that has been fixed today. I'm not sure if the fix will be included in 1.86 or whether we will have to wait for 1.87: rust-lang/rust#138979 |
|
Ok, I have a workaround for the compiler ICE, that doesn't appear to have any downsides. Added it and documented it. |
50398e7 to
b01fcfb
Compare
|
Thanks, @sosthene-nitrokey! |
This makes
drainusable in the context of an implementation generic over the storageThis also makes it possible to get a
*Viewin this same contextThis could also be a way to "de-monomorphize" all the implementations of the
Innerstructs:We could make all implementation define an inner function that is over a
Viewtype, and start theimplementation with
this = self.as_(mut_)view, maybe for binary size and compilation time benefits. For example the implementation ofVecInner::pushcould be: