小编Vit*_*ijs的帖子

返回通用 Vec

假设我有一个这样的结构:

struct A {
    field0: u32,
    field1: Vec<B>,
}

struct B {
    field0: f64,
    field1: String,
    field2: Vec<C>,
}

struct C {
    field0: Vec<u8>,
    field1: bool,
}
Run Code Online (Sandbox Code Playgroud)

我想为每个输出带有 Vec 字段的结构实现一个特征。

// snip
trait MyVec<T> {
    fn myvec(&self) -> Vec<T>;
}

impl MyVec<T> for A {
    fn myvec(&self) -> Vec<T> { // return Vec<B>
        &self.field1
    }
}
impl MyVec<T> for B {
    fn myvec(&self) -> Vec<T> { // return Vec<C>
        &self.field2
    }
}
impl MyVec<T> for C {
    fn myvec(&self) -> …
Run Code Online (Sandbox Code Playgroud)

generics struct traits rust

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

标签 统计

generics ×1

rust ×1

struct ×1

traits ×1