~bigbes/tarantool

tarantool-protobuf

ref: 7b3d69010b4ebad701bb98c0dda9e785823857d0 tarantool-protobuf/examples/expected/runtime/c_repeated/c_repeated_pb.lua -rw-r--r-- 5.4 KiB
7b3d6901 — Eugene Blikh bench: apply mcode arena hardening across all bench scripts (3qu) 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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
-- Code generated by protoc-gen-tarantool. DO NOT EDIT.
-- source: c_repeated.proto
-- syntax: proto3
-- package: c_repeated

local pb = require("pb")
local wire = pb.wire
local string_byte = string.byte
local utf8_len = require('utf8').len
local band = bit.band
local rshift = bit.rshift
local CHARS = wire.CHARS
local table_new = require('table.new')

local M = {}

M.options = {go_package = "tarantoolpb_synthetic/c_repeated"}

-- Pre-declare message descriptors so cross-references resolve.
M.Inner_descriptor = {name = "c_repeated.Inner"}
M.Holder_descriptor = {name = "c_repeated.Holder"}

-- Message: c_repeated.Inner
M.Inner_descriptor.fields = {
    {name="v", id=1, kind='scalar', proto_type="int32"},
    {name="s", id=2, kind='scalar', proto_type="string"},
}
pb.finalize_message(M.Inner_descriptor)
M.Inner_fields = pb.field_names({
    v = "v",
    s = "s",
})

-- Message: c_repeated.Holder
M.Holder_descriptor.fields = {
    {name="packed_int32", id=1, kind='scalar', proto_type="int32", repeated=true, packed=true},
    {name="packed_int64", id=2, kind='scalar', proto_type="int64", repeated=true, packed=true},
    {name="packed_sint32", id=3, kind='scalar', proto_type="sint32", repeated=true, packed=true},
    {name="packed_uint32", id=4, kind='scalar', proto_type="uint32", repeated=true, packed=true},
    {name="packed_fixed32", id=5, kind='scalar', proto_type="fixed32", repeated=true, packed=true},
    {name="packed_fixed64", id=6, kind='scalar', proto_type="fixed64", repeated=true, packed=true},
    {name="packed_double", id=7, kind='scalar', proto_type="double", repeated=true, packed=true},
    {name="packed_float", id=8, kind='scalar', proto_type="float", repeated=true, packed=true},
    {name="packed_bool", id=9, kind='scalar', proto_type="bool", repeated=true, packed=true},
    {name="unpacked_int32", id=20, kind='scalar', proto_type="int32", repeated=true, packed=false, options={packed = false}},
    {name="unpacked_fixed64", id=21, kind='scalar', proto_type="fixed64", repeated=true, packed=false, options={packed = false}},
    {name="unpacked_sint32", id=22, kind='scalar', proto_type="sint32", repeated=true, packed=false, options={packed = false}},
    {name="strings", id=30, kind='scalar', proto_type="string", repeated=true},
    {name="blobs", id=31, kind='scalar', proto_type="bytes", repeated=true},
    {name="messages", id=40, kind='message', message=M.Inner_descriptor, repeated=true},
}
pb.finalize_message(M.Holder_descriptor)
M.Holder_fields = pb.field_names({
    packed_int32 = "packed_int32",
    packed_int64 = "packed_int64",
    packed_sint32 = "packed_sint32",
    packed_uint32 = "packed_uint32",
    packed_fixed32 = "packed_fixed32",
    packed_fixed64 = "packed_fixed64",
    packed_double = "packed_double",
    packed_float = "packed_float",
    packed_bool = "packed_bool",
    unpacked_int32 = "unpacked_int32",
    unpacked_fixed64 = "unpacked_fixed64",
    unpacked_sint32 = "unpacked_sint32",
    strings = "strings",
    blobs = "blobs",
    messages = "messages",
})

-- EmmyLua / lua-language-server type annotations.
-- These are comments — no runtime effect. They give editors
-- autocomplete and type-checking for the generated wrappers.
---@class c_repeated.Inner
---@field v integer
---@field s string

---@class c_repeated.Holder
---@field packed_int32 integer[] @ Packed scalars (proto3 default). One per encoder branch.
---@field packed_int64 integer[]
---@field packed_sint32 integer[]
---@field packed_uint32 integer[]
---@field packed_fixed32 integer[]
---@field packed_fixed64 integer[]
---@field packed_double number[]
---@field packed_float number[]
---@field packed_bool boolean[]
---@field unpacked_int32 integer[] @ Explicit unpacked — emits one tag per element.
---@field unpacked_fixed64 integer[]
---@field unpacked_sint32 integer[]
---@field strings string[] @ Length-delimited element kinds — never packable.
---@field blobs string[]
---@field messages c_repeated.Inner[] @ Repeated sub-message — per-element tag + length-prefix + body.

---@param t? c_repeated.Inner
---@return c_repeated.Inner
function M.Inner_new(t) return t or {} end
---@param t c_repeated.Inner
---@return string
function M.Inner_encode(t) return pb.encode(M.Inner_descriptor, t) end
---@param b string
---@return c_repeated.Inner
function M.Inner_decode(b) return pb.decode(M.Inner_descriptor, b) end
function M.Inner_decode_unsafe(b) return pb.decode_unsafe(M.Inner_descriptor, b) end
---@param b string
---@return pb.MessageView
function M.Inner_decode_lazy(b) return pb.decode_lazy(M.Inner_descriptor, b) end
---@param t c_repeated.Inner
---@param opts? {single_line: boolean?, indent: string?}
---@return string
function M.Inner_text(t, opts) return pb.text.encode(M.Inner_descriptor, t, opts) end

---@param t? c_repeated.Holder
---@return c_repeated.Holder
function M.Holder_new(t) return t or {} end
---@param t c_repeated.Holder
---@return string
function M.Holder_encode(t) return pb.encode(M.Holder_descriptor, t) end
---@param b string
---@return c_repeated.Holder
function M.Holder_decode(b) return pb.decode(M.Holder_descriptor, b) end
function M.Holder_decode_unsafe(b) return pb.decode_unsafe(M.Holder_descriptor, b) end
---@param b string
---@return pb.MessageView
function M.Holder_decode_lazy(b) return pb.decode_lazy(M.Holder_descriptor, b) end
---@param t c_repeated.Holder
---@param opts? {single_line: boolean?, indent: string?}
---@return string
function M.Holder_text(t, opts) return pb.text.encode(M.Holder_descriptor, t, opts) end

return M