【问题标题】:Why does FlatBufferBuilder have a lifetime?为什么 FlatBufferBuilder 有生命周期?
【发布时间】:2019-06-21 06:05:53
【问题描述】:

为什么来自 Rust flatbuffer 库的 FlatBufferBuilder 具有与之关联的生命周期?

生命周期使得在结构中使用变得困难,因为我需要为它们添加生命周期。我看到一些方法使用了生命周期,但似乎那些可以使用 self 的生命周期。

【问题讨论】:

  • 您是否尝试过将'static 用作一生?那么你就不需要参数化任何嵌入它的东西了。
  • this on unused lifetime parameters。它仍然没有解释 FlatFileBuilder 结构中的什么需要生命周期...

标签: rust flatbuffers


【解决方案1】:

我自己是 Rust 的新手,所以也在努力解决这个问题。 从 flatbuffers 的 builder.rs 代码来看,似乎是因为像下面这样的方法返回对构建器内部数据的引用,这需要知道构建器的生命周期才能有效。

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

使用像上面提到的 Matthieu 这样的 'static 似乎使我能够不向具有成员 FlatBufferBuilder 的结构添加更明确的生命周期。但仍然难以理解为什么将 'static 放在非静态的结构上是有效的......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    • 2021-02-04
    相关资源
    最近更新 更多