gpt4 book ai didi

protocol-buffers - 如何在不反序列化第一个 protobuf 的情况下将序列化的 protobuf 与另一个 protobuf 合并

转载 作者:行者123 更新时间:2023-12-03 23:17:11 29 4
gpt4 key购买 nike

我试图了解是否有可能采用构成另一个 protobuf 一部分的序列化 protobuf 并将它们合并在一起而不必反序列化第一个 protobuf。

例如,给定一个 protobuf 包装器:

syntax = "proto2";

import "content.proto";

message WrapperContent {

required string metatData = 1;
required Content content = 2;

}

然后想象我们得到一个 的序列化版本。内容 下面(即 内容 来自远程客户端):
syntax = "proto2";

message Content {

required string name = 1;
required bytes payload = 2;

}

你知道我有什么方法可以注入(inject)序列化的 吗?内容 进入 包装内容 无需先反序列化 内容 .

我尝试注入(inject)的原因 内容 没有反序列化它,是我试图节省反序列化消息的开销。

如果答案是,不,那是不可能的。那还是有帮助的。

谢谢,迈克。

最佳答案

在 protobuf 中,子消息存储为 bytes字段。

因此,您可以制作包装器的修改副本:

message WrapperContentBytes {
required string metatData = 1;
required bytes content = 2;
}

并将已经序列化的内容数据写入 content field 。

解码器可以使用未修改的 WrapperContent消息也解码子消息。线上的二进制数据将是相同的,因此解码器不知道其中的区别。

关于protocol-buffers - 如何在不反序列化第一个 protobuf 的情况下将序列化的 protobuf 与另一个 protobuf 合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48470186/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com