~bigbes/tarantool

tarantool-protobuf

ref: ee07048d3ab9678553493c643fb74328e7d5e908 tarantool-protobuf/examples/expected/runtime/c_repeated/c_repeated_pb.lua -rw-r--r-- 5.2 KiB
ee07048d — Eugene Blikh beads: close 74c 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
-- 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 band = bit.band
local rshift = bit.rshift

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
---@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
---@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