我有一个看起来像这样的 Add 实现,
impl<T: Into<u64>> Add<T> for Sequence {
type Output = Self;
fn add(self, rhs: T) -> Self::Output {
let mut o = self.clone();
o.myadd(rhs.into()).unwrap();
o
}
}
该函数myadd
返回一个结果;这实际上工作正常。问题是在现实世界中,该方法是Sequence.add()
在我希望 Add 调用的 Sequence 上实现的。如果我重命名myadd
为add
这样,
o.add(rhs.into()).unwrap();
然后它不再编译我得到“错误[E0599]:没有为当前范围内unwrap
的结构找到sequence::Sequence
名为的方法” ,它告诉我add
它的发现没有返回结果,它返回的序列不是我想要的。如何在 add 调用中限定特征?