在Vec

时间:2016-05-11 09:49:31

标签: rust

我试图构建一个包含对另一个结构的向量的引用的结构,如下所示:

pub struct Downstream<'a> {
    frequency: i32,
    slot: i32,
    connector: i32,
    description: String,
    cablemac: &'a CableMac,
}

pub struct Upstream<'a> {
    downstreams: Vec<Downstream>,
}

无论我尝试什么,我总会得到这一生的错误:

src/e6000/mod.rs:13:22: 13:32 error: wrong number of lifetime parameters: expected 1, found 0 [E0107]
src/e6000/mod.rs:13     downstreams: Vec<Downstream>,

E0107根本没有帮助。

我在哪里以及如何使用'a来实现这项工作?

1 个答案:

答案 0 :(得分:3)

downstreams: Vec<Downstream>,

应该是

downstreams: Vec<Downstream<'a>>,
  

E0107根本没有帮助。

您应该运行rustc --explain E0107

该命令的输出目前以一些很好的例子开始:

  

此错误表示生命周期参数的数量不正确   提供类型(如结构或枚举)或特征。

     

一些基本的例子包括:

struct Foo<'a>(&'a str);
enum Bar { A, B, C }

struct Baz<'a> {
    foo: Foo,     // error: expected 1, found 0
    bar: Bar<'a>, // error: expected 0, found 1
}