Re:Rust's 2017 Roadmap
by steveklabnik on Monday February 06, 2017 @06:33PM
(#13585388)
It helps with the orphan rule, as everyone would be importing the trait from std. From/Into are the same kind of traits. That is, the idea is that the rand crate would implement std::rand::Random, and so would some rand2 crate, and then I could write my own crate saying
fn random<R: std::rand::Random>(r: R)
and it would work with either one. No need for newtypes.I also might be missing something.
How would this interact with the orphan rule? Wouldnt this mean the vocabulary traits would not have default or std library type implementations and would have to be wrapped in newtypes, defeating the purpose of having them for inter-crate exchange? I guess you could wire types explicitly with Into/From in user code. Are there any traits unimplemented in std now that these vocab traits would look like?