~bigbes/tarantool

tarantool-protobuf

ref: 6471b5d160a4b8b92995844f37b9909b2d9cfcf6 tarantool-protobuf/test/proto/c_repeated.proto -rw-r--r-- 1.4 KiB
6471b5d1 — Eugene Blikh c_runtime: repeated string + repeated message acceptance at 1KB/10KB/100KB (ra6 3f) 2 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
syntax = "proto3";

package c_repeated;

// Fixture for bd-jc9 (ra6 3e): repeated + packed C-runtime acceptance.
//
// Carries packed (proto3 default), explicit [packed=false], length-
// delimited (string/bytes — never packable), and repeated sub-message
// shapes so the C runtime exercises every repeated dispatch branch
// against the same mode=full reference.
//
// Field numbers cluster by encoding shape so a hand-decode of a small
// encoded payload stays readable when debugging fixture drift.

message Inner {
  int32  v = 1;
  string s = 2;
}

message Holder {
  // Packed scalars (proto3 default). One per encoder branch.
  repeated int32   packed_int32   = 1;
  repeated int64   packed_int64   = 2;
  repeated sint32  packed_sint32  = 3;
  repeated uint32  packed_uint32  = 4;
  repeated fixed32 packed_fixed32 = 5;
  repeated fixed64 packed_fixed64 = 6;
  repeated double  packed_double  = 7;
  repeated float   packed_float   = 8;
  repeated bool    packed_bool    = 9;

  // Explicit unpacked — emits one tag per element.
  repeated int32   unpacked_int32   = 20 [packed = false];
  repeated fixed64 unpacked_fixed64 = 21 [packed = false];
  repeated sint32  unpacked_sint32  = 22 [packed = false];

  // Length-delimited element kinds — never packable.
  repeated string strings = 30;
  repeated bytes  blobs   = 31;

  // Repeated sub-message — per-element tag + length-prefix + body.
  repeated Inner messages = 40;
}