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
|
# Generated by protoc_gen_nim. Do not edit!
import intsets
import nimpb/nimpb
type
google_protobuf_Any* = ref google_protobuf_AnyObj
google_protobuf_AnyObj* = object of RootObj
hasField: IntSet
type_url: string
value: bytes
proc newgoogle_protobuf_Any*(): google_protobuf_Any
proc writegoogle_protobuf_Any*(stream: ProtobufStream, message: google_protobuf_Any)
proc readgoogle_protobuf_Any*(stream: ProtobufStream): google_protobuf_Any
proc sizeOfgoogle_protobuf_Any*(message: google_protobuf_Any): uint64
proc newgoogle_protobuf_Any*(): google_protobuf_Any =
new(result)
result.hasField = initIntSet()
result.type_url = ""
result.value = bytes("")
proc cleartype_url*(message: google_protobuf_Any) =
message.type_url = ""
excl(message.hasField, [1])
proc hastype_url*(message: google_protobuf_Any): bool =
result = contains(message.hasField, 1)
proc settype_url*(message: google_protobuf_Any, value: string) =
message.type_url = value
incl(message.hasField, 1)
proc type_url*(message: google_protobuf_Any): string {.inline.} =
message.type_url
proc `type_url=`*(message: google_protobuf_Any, value: string) {.inline.} =
settype_url(message, value)
proc clearvalue*(message: google_protobuf_Any) =
message.value = bytes("")
excl(message.hasField, [2])
proc hasvalue*(message: google_protobuf_Any): bool =
result = contains(message.hasField, 2)
proc setvalue*(message: google_protobuf_Any, value: bytes) =
message.value = value
incl(message.hasField, 2)
proc value*(message: google_protobuf_Any): bytes {.inline.} =
message.value
proc `value=`*(message: google_protobuf_Any, value: bytes) {.inline.} =
setvalue(message, value)
proc sizeOfgoogle_protobuf_Any*(message: google_protobuf_Any): uint64 =
if hastype_url(message):
result = result + sizeOfTag(1, WireType.LengthDelimited)
result = result + sizeOfString(message.type_url)
if hasvalue(message):
result = result + sizeOfTag(2, WireType.LengthDelimited)
result = result + sizeOfBytes(message.value)
proc writegoogle_protobuf_Any*(stream: ProtobufStream, message: google_protobuf_Any) =
if hastype_url(message):
writeString(stream, message.type_url, 1)
if hasvalue(message):
writeBytes(stream, message.value, 2)
proc readgoogle_protobuf_Any*(stream: ProtobufStream): google_protobuf_Any =
result = newgoogle_protobuf_Any()
while not atEnd(stream):
let
tag = readTag(stream)
wireType = wireType(tag)
case fieldNumber(tag)
of 0:
raise newException(InvalidFieldNumberError, "Invalid field number: 0")
of 1:
expectWireType(wireType, WireType.LengthDelimited)
settype_url(result, readString(stream))
of 2:
expectWireType(wireType, WireType.LengthDelimited)
setvalue(result, readBytes(stream))
else: skipField(stream, wireType)
proc serialize*(message: google_protobuf_Any): string =
let
ss = newStringStream()
pbs = newProtobufStream(ss)
writegoogle_protobuf_Any(pbs, message)
result = ss.data
proc newgoogle_protobuf_Any*(data: string): google_protobuf_Any =
let
ss = newStringStream(data)
pbs = newProtobufStream(ss)
result = readgoogle_protobuf_Any(pbs)
|