I've just finished this really lovely crate for array like data structure implementors where if you only provide a len() impl and Index<usize> you get a ton of default impls of standard methods for free, like this (and even more for mutable refs):
Conversation
But it means the end user will have to import the Array trait explicitly in order to use the extra methods, which in my mind makes it an unacceptable UX obstacle.
The reason I even mention it is that I want someone to tell me if I'm wrong and it's actually not a big deal...
3
9
I knew it was a bad idea halfway through and I still finished it, just because it's so nice, it's like the Foldable/Traversable of arrays.
2
12
This Tweet was deleted by the Tweet author. Learn more
Yes, but say I implement it for im::Vector, the end user would have to `use array_ops::prelude::*;` just to access most methods on im::Vector, and even though the compiler will notify you about this, it still feels very annoying to me.
2
Replying to
This seems handy though, even if you end up just implementing boilerplate method impls directly on `im::Vector` that recall the array impls. Idea being to reduce the stuff you need to re-implement individually, hopefully reducing bugs.

