我如何限定或保持特征未提供的方法的更高优先级?

How can I qualify or hold to a higher precedence a method not provided by a trait?

我有一个看起来像这样的添加实现,

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 returns一个结果; 这实际上工作正常。问题是在现实世界中,该方法是 Sequence.add() 在我希望 Add 调用的序列上实现的。如果我像这样将 myadd 重命名为 add

o.add(rhs.into()).unwrap();

然后它不再编译我得到 “错误[E0599]:在当前范围内没有为结构 sequence::Sequence 找到名为 unwrap 的方法”这告诉我它找到的 add 没有返回结果,它返回的是一个序列,这不是我想要的。如何在添加调用中限定特征?

我能够针对我在 impl Sequence {} 下提供的添加内容添加以下内容,

Sequence::add(r, rhs.into()).unwrap();

您也可以使用

Self::add(r, rhs.into()).unwrap();