3
只有在相關類型不同的情況下,Rust纔會區分不同的性狀實現。如何在不同類型的IntoIterator項目上允許多個特徵實現?
如何在各種集合/迭代器上實現一個方法,但是它們包含的每個具體類型都有特定的實現?
error: conflicting implementations for trait
Foo
[E0119]
trait Foo { fn foo(self); }
impl<T> Foo for T
where T: IntoIterator<Item=u32>
{
fn foo(self) {
self.into_iter();
}
}
impl<T> Foo for T
where T: IntoIterator<Item=u16>
{
fn foo(self) {
self.into_iter();
}
}
fn main() {
vec![0u32].foo();
vec![0u16].foo();
}