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
|
# Generated by protoc_gen_nim. Do not edit!
import intsets
import protobuf/stream
import protobuf/types
type
google_protobuf_FieldMask* = ref google_protobuf_FieldMaskObj
google_protobuf_FieldMaskObj* = object of RootObj
hasField: IntSet
paths: seq[string]
proc newgoogle_protobuf_FieldMask*(): google_protobuf_FieldMask
proc writegoogle_protobuf_FieldMask*(stream: ProtobufStream, message: google_protobuf_FieldMask)
proc readgoogle_protobuf_FieldMask*(stream: ProtobufStream): google_protobuf_FieldMask
proc sizeOfgoogle_protobuf_FieldMask*(message: google_protobuf_FieldMask): uint64
proc newgoogle_protobuf_FieldMask*(): google_protobuf_FieldMask =
new(result)
result.hasField = initIntSet()
result.paths = @[]
proc clearpaths*(message: google_protobuf_FieldMask) =
message.paths = @[]
excl(message.hasField, 1)
proc haspaths*(message: google_protobuf_FieldMask): bool =
result = contains(message.hasField, 1)
proc setpaths*(message: google_protobuf_FieldMask, value: seq[string]) =
message.paths = value
incl(message.hasField, 1)
proc addpaths*(message: google_protobuf_FieldMask, value: string) =
add(message.paths, value)
incl(message.hasField, 1)
proc paths*(message: google_protobuf_FieldMask): seq[string] {.inline.} =
message.paths
proc `paths=`*(message: google_protobuf_FieldMask, value: seq[string]) {.inline.} =
setpaths(message, value)
proc sizeOfgoogle_protobuf_FieldMask*(message: google_protobuf_FieldMask): uint64 =
for value in message.paths:
let
sizeOfValue = sizeOfString(value)
sizeOfTag = sizeOfUInt32(uint32(makeTag(1, WireType.LengthDelimited)))
result = result + sizeOfValue + sizeOfTag
proc writegoogle_protobuf_FieldMask*(stream: ProtobufStream, message: google_protobuf_FieldMask) =
for value in message.paths:
writeTag(stream, 1, WireType.LengthDelimited)
writeString(stream, value)
proc readgoogle_protobuf_FieldMask*(stream: ProtobufStream): google_protobuf_FieldMask =
result = newgoogle_protobuf_FieldMask()
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.LengthDelimited)
addpaths(result, readString(stream))
else: skipField(stream, wireType)
proc serialize*(message: google_protobuf_FieldMask): string =
let
ss = newStringStream()
pbs = newProtobufStream(ss)
writegoogle_protobuf_FieldMask(pbs, message)
result = ss.data
proc newgoogle_protobuf_FieldMask*(data: string): google_protobuf_FieldMask =
let
ss = newStringStream(data)
pbs = newProtobufStream(ss)
result = readgoogle_protobuf_FieldMask(pbs)
|