在不重复结构

时间:2018-12-10 20:43:56

标签: struct rust traits

我有一个特征,它仅具有一个要求,即方法len(&self) -> usize的存在。然后,它为该结构提供了一些新方法的实现。

trait MyTrait {
    fn len(&self) -> usize;

    // ... some new functions with implementations
}

我想在std::collections::LinkedList上实现此特征,该特征已经具有带有确切类型签名的方法。目前,我正在这样做:

impl<T> MyTrait for LinkedList<T> {
    fn len(&self) -> usize {
        self.len()
    }
}

然后,我可以在MyTrait实例上使用LinkedList定义的新方法。但是,由于类型签名是相同的,因此不必重复这样的方法定义。有没有办法在我的特征实现中省略len的重新定义?

1 个答案:

答案 0 :(得分:2)

  

在我的特质实现中是否可以忽略对len的重新定义?

不,这不可能。

您也许可以编写某种宏来为您编写代码,但是至少可以说处理类型参数很烦人。

另请参阅: