a) I want to write a trait, MyTrait
b) I want to impl MyTrait for Result<T, TaitBySomeoneElseA>, Result<T, TaitBySomeoneElseB>
c) I wrote the following code
d) I got "conflicting implementation"
Is there a way to do what I want? thanks!
// a trait, by someone else
trait TraitBySomeoneElseA {}
// another trait, by someone else
trait TraitBySomeoneElseB {}
// my trait
trait MyTrait {}
impl<T, E> MyTrait for Result<T, E>
where
T: TraitBySomeoneElseA,
E: std::error::Error,
{
// for all T: TraitBySomeoneElseA, use this one
}
impl<T, E> MyTrait for Result<T, E>
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `Result<_, _>`
where
T: TraitBySomeoneElseB,
E: std::error::Error,
{
// for all T: TraitBySomeoneElseB, use this one
}