微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将平面缓冲区复制到其他缓冲区

如何解决如何将平面缓冲区复制到其他缓冲区

我有一个嵌套的平面缓冲区,如下所示:

struct Flat_A {
    // s.t
}

struct Flat_B {
    // s.t
}

struct Flat_C {

    flata : Flat_A

    flatb : Flat_B
}

我想先创建 flata 的 flatbuffer:Flat_A(在与其父级不同的 flatbufferbuilder 中),然后将此 flatbuffer 复制到父级缓冲区(Flat_C)。

我看到了函数 copyTable,但它似乎只是复制到一个新的 flatbuffer,而不是像 Flat_C 这样的 EXIST 缓冲区。 有没有办法做到这一点?

解决方法

CopyTable 实际上用于此目的,它可以从现有缓冲区复制到不同的构建器。但是它需要反射,这非常笨拙,我建议不要使用它。

如果你真的不能一次性构造 C,最好的选择是将 flata 字段更改为 flata : [ubyte] (nested_flatbuffer: "Flat_A")。您可以将 A 的整个序列化字节复制到 flata 中,然后您可以通过获取 flata 的根来访问它(应该会为您生成一个自动执行此操作的访问器)。这实际上几乎与直接使用 Flat_A 类型一样有效,因为它仍然在原地访问这个嵌套缓冲区。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。