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
|
# Generated by protoc_gen_nim. Do not edit!
import intsets
import protobuf/protobuf
type
google_protobuf_Duration* = ref google_protobuf_DurationObj
google_protobuf_DurationObj* = object of RootObj
hasField: IntSet
seconds: int64
nanos: int32
proc newgoogle_protobuf_Duration*(): google_protobuf_Duration
proc writegoogle_protobuf_Duration*(stream: ProtobufStream, message: google_protobuf_Duration)
proc readgoogle_protobuf_Duration*(stream: ProtobufStream): google_protobuf_Duration
proc sizeOfgoogle_protobuf_Duration*(message: google_protobuf_Duration): uint64
proc newgoogle_protobuf_Duration*(): google_protobuf_Duration =
new(result)
result.hasField = initIntSet()
result.seconds = 0
result.nanos = 0
proc clearseconds*(message: google_protobuf_Duration) =
message.seconds = 0
excl(message.hasField, 1)
proc hasseconds*(message: google_protobuf_Duration): bool =
result = contains(message.hasField, 1)
proc setseconds*(message: google_protobuf_Duration, value: int64) =
message.seconds = value
incl(message.hasField, 1)
proc seconds*(message: google_protobuf_Duration): int64 {.inline.} =
message.seconds
proc `seconds=`*(message: google_protobuf_Duration, value: int64) {.inline.} =
setseconds(message, value)
proc clearnanos*(message: google_protobuf_Duration) =
message.nanos = 0
excl(message.hasField, 2)
proc hasnanos*(message: google_protobuf_Duration): bool =
result = contains(message.hasField, 2)
proc setnanos*(message: google_protobuf_Duration, value: int32) =
message.nanos = value
incl(message.hasField, 2)
proc nanos*(message: google_protobuf_Duration): int32 {.inline.} =
message.nanos
proc `nanos=`*(message: google_protobuf_Duration, value: int32) {.inline.} =
setnanos(message, value)
proc sizeOfgoogle_protobuf_Duration*(message: google_protobuf_Duration): uint64 =
if hasseconds(message):
let
sizeOfField = sizeOfInt64(message.seconds)
sizeOfTag = sizeOfUInt32(uint32(makeTag(1, WireType.Varint)))
result = result + sizeOfField + sizeOfTag
if hasnanos(message):
let
sizeOfField = sizeOfInt32(message.nanos)
sizeOfTag = sizeOfUInt32(uint32(makeTag(2, WireType.Varint)))
result = result + sizeOfField + sizeOfTag
proc writegoogle_protobuf_Duration*(stream: ProtobufStream, message: google_protobuf_Duration) =
if hasseconds(message):
writeTag(stream, 1, WireType.Varint)
writeInt64(stream, message.seconds)
if hasnanos(message):
writeTag(stream, 2, WireType.Varint)
writeInt32(stream, message.nanos)
proc readgoogle_protobuf_Duration*(stream: ProtobufStream): google_protobuf_Duration =
result = newgoogle_protobuf_Duration()
while not atEnd(stream):
let
tag = readTag(stream)
wireType = getTagWireType(tag)
case getTagFieldNumber(tag)
of 0:
raise newException(InvalidFieldNumberError, "Invalid field number: 0")
of 1:
expectWireType(wireType, WireType.Varint)
setseconds(result, readInt64(stream))
of 2:
expectWireType(wireType, WireType.Varint)
setnanos(result, readInt32(stream))
else: skipField(stream, wireType)
proc serialize*(message: google_protobuf_Duration): string =
let
ss = newStringStream()
pbs = newProtobufStream(ss)
writegoogle_protobuf_Duration(pbs, message)
result = ss.data
proc newgoogle_protobuf_Duration*(data: string): google_protobuf_Duration =
let
ss = newStringStream(data)
pbs = newProtobufStream(ss)
result = readgoogle_protobuf_Duration(pbs)
|