为什么FlatBufferBuilder有生存期?

时间:2019-06-21 06:05:53

标签: rust flatbuffers

Rust Flatbuffer库中的FlatBufferBuilder为什么有与其关联的生存期?

生存期使得在结构中难以使用,因为然后我需要为其添加生存期。我看到有一些方法使用了生命周期,但是似乎这些方法可以使用self的生命周期。

1 个答案:

答案 0 :(得分:1)

Rust自己是新手,所以也正努力应对这一问题。 通过查看flatbuffers的builder.rs代码,似乎是由于如下所示的方法返回了对构建器内部数据的引用,该数据需要知道构建器的生命周期才有效。

pub fn create_string<'a: 'b, 'b>(&'a mut self, s: &'b str) -> WIPOffset<&'fbb str>

使用类似上面提到的'Matthieu'的静态方法似乎使我无法向具有FlatBufferBuilder成员的结构添加更多显式寿命。但是仍在努力理解为什么将'static放置在非静态的结构上起作用的原因...