在可以转换类型参数的情况下,我想为通用类型的实例化实现From
。
struct Item<T>(T);
impl<T, U> From<Item<U>> for Item<T> where T: From<U> {
fn from(other: Item<U>) -> Item<T> {
Item(other.0.into())
}
}
fn main() {
let a = Item(10i8);
let b: Item<i32> = a.into();
}
此操作失败
error[E0119]: conflicting implementations of trait `std::convert::From<Item<_>>` for type `Item<_>`:
--> src/main.rs:4:1
|
3 | impl<T, U> From<Item<U>> for Item<T> where T: From<U> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
有什么办法吗?