在不重复已在结构体中定义的方法的情况下实现特质

7

我有一个特性,它只有一个要求,那就是存在一个方法 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实例。然而,感觉没有必要重复定义这个方法,因为函数签名是相同的。有没有办法在我的trait实现中省略对len的重新定义?

1个回答

7

啊,好的。谢谢你的回答。如果我需要更多地实现这个特性,我会考虑编写一个宏,但由于它只适用于LinkedList,所以我不会费心去做。再次感谢。 - Aaron Christiansen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接