小编Why*_*Not的帖子

如何使用特征的不同实现实例化相同的结构?

我有一个由同一个结构以不同方式实现的特征。为了实现这一点,我有不同的结构,它们具有不同的实现。对于抽象,我将把这些结构称为 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)

struct traits rust

2
推荐指数
1
解决办法
228
查看次数

标签 统计

rust ×1

struct ×1

traits ×1