我有一个由同一个结构以不同方式实现的特征。为了实现这一点,我有不同的结构,它们具有不同的实现。对于抽象,我将把这些结构称为 AZ:
trait Trait {
fn bar<T: Trait> (&self, z: &Struct3<T>) -> Struct3<T>;
}
Run Code Online (Sandbox Code Playgroud)
struct StructA {
name: String,
color: String,
}
impl Trait for StructA {
fn bar<T: Trait> (&self, z: &Struct3<T>) -> Struct3<T>{
let mut list = Vec::new();
list.push(self.clone());
let y = Struct2::<T> {
name: z.y.name,
list: list,
};
Struct3::<T> {
point: 1,
y: y,
}
}
}
Run Code Online (Sandbox Code Playgroud)
struct StructZ {
name: String,
color: String,
}
impl Trait for StructZ {
fn bar<T: Trait> (&self, z: &Struct3<T>) -> …Run Code Online (Sandbox Code Playgroud)