~bigbes/tarantool

tarantool-protobuf

ref: 55b5386f999fbd6e3abe6d5a0297dd8ac753b988 tarantool-protobuf/examples/expected/runtime/c_repeated/c_repeated_pb.lua -rw-r--r-- 5.5 KiB
55b5386f — Eugene Blikh ci: cache Go tarball in Garage S3 (golang/ prefix) 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
132
133
134
-- 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 ffi = require('ffi')
local INT64  = ffi.typeof('int64_t')
local UINT64 = ffi.typeof('uint64_t')

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