YStudio Y++

Protobuf类

Y++ / YStudio 开发文档 · 一点滴

类对象支持库(旁路插件 supportlib.protobuf)。路径:支持库 → 扩展类库 → Protobuf类。

按 官方 Protocol Buffers 线格式 编解码字节集(内嵌 protobuf-lite 3.21)。按字段号读写,不必先写 .proto / 生成 C++。免费,随整包 IDE。

类型名必须写完整「Protobuf类」。

硬约束

  1. 类型名必须写「Protobuf类」。
  2. 字段号与对方 .proto 定义一致才能互通;线型不对时取值可能为 0/空。
  3. 不做描述符反射;gRPC 传输见 gRPC类 / gRPC流类(一元 + 流式;含工程接入、易错、示例对照与方法详解)。
  4. 许可证:第三方 protobuf 为 BSD-3-Clause(插件内 NOTICE.protobuf.txt)。

快速开始

Protobuf类 m
m.置整数(1, 42)
m.置文本(2, "hello")
字节集 bin = m.编码()

Protobuf类 n
如果 (!n.解码(bin)) {
    输出(n.取错误())
    返回 ()
}
输出(n.取整数(1))
输出(n.取文本(2))

嵌套消息:

Protobuf类 子
子.置文本(1, "inner")
Protobuf类 父
父.置子消息(3, 子.编码())

方法摘要

  • 清空 / 解码(字节集) / 编码() → 字节集
  • 置:置变长整数 置逻辑 置整数 置长整数 置固定32 置固定64 置浮点 置双精度 置字节集 置文本 置子消息
  • 取:对应 取*,重复字段用「第几个」从 0 起
  • 取字段数 取字段号 取线型 取字段出现次数 取错误

线型:0 变长 · 1 64 位 · 2 长度限定 · 5 32 位。


相关

JSON类 · 字节集 · gRPC类 / gRPC流类