我有一个特点
trait Foo<T> : Iterator<Item=T> {
fn bar(&mut self) -> f64;
}
我想对类型T
(在我的例子中是f64
)在其所有引用类型(f64
、&'a f64
和&'a mut f64
)上实现这个特性一次,因为从逻辑上来说,这并不重要.
我现在有
impl<T: Iterator<Item = f64>> Foo<f64> for T {
fn bar(&mut self) -> f64 {
// duplicated code
}
}
impl<'a, T: Iterator<Item = &'a f64>> Foo<&'a f64> for T {
fn bar(&mut self) -> f64 {
// duplicated code
}
}
impl<'a, T: Iterator<Item = &'a mut f64>> Foo<&'a mut f64> for T {
fn bar(&mut self) -> f64 {
// duplicated code
}
}
有没有一种不重复的好方法来实现这一点?