Struct 在不重复已在结构上定义的方法的情况下实现traits

Struct 在不重复已在结构上定义的方法的情况下实现traits,struct,rust,traits,Struct,Rust,Traits,我有一个特点,它只有一个要求,即存在一个方法len(&self)->usize。然后,它为结构的两个新方法提供了实现 trait MyTrait { fn len(&self) -> usize; // ... some new functions with implementations } 我想在std::collections::LinkedList上实现这个特性,它已经有了一个具有精确类型签名的方法。目前,我正在这样做: impl<T> My

我有一个特点,它只有一个要求,即存在一个方法
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()
    }
}
impl-MyTrait for LinkedList{
fn len(&self)->使用{
self.len()
}
}
然后,我可以在我的
LinkedList
实例上使用
MyTrait
定义的新方法。但是,由于类型签名是相同的,因此感觉没有必要像这样重复方法的定义。在我的trait实现中,有没有办法省略对
len
的重新定义

在我的trait实现中,有没有办法省略对
len
的重新定义

不,这是不可能的

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

另见:


Ah OK;谢谢你的回答。如果我需要更多的实现这个特性,我会考虑编写一个宏,但是因为它只适用于<代码> LIKEDLIST/CODE >,所以我不会费心。再次感谢