diff options
| -rw-r--r-- | examples/addressbook/phonenumber_pb.nim | 18 | ||||
| -rw-r--r-- | examples/simple/simple_pb.nim | 18 | ||||
| -rw-r--r-- | generator/protoc_gen_nim.nim | 55 | ||||
| -rw-r--r-- | src/nimpb/nimpb.nim | 4 | ||||
| -rw-r--r-- | src/nimpb/wkt/api_pb.nim | 12 | ||||
| -rw-r--r-- | src/nimpb/wkt/struct_pb.nim | 18 | ||||
| -rw-r--r-- | src/nimpb/wkt/type_pb.nim | 60 |
7 files changed, 53 insertions, 132 deletions
diff --git a/examples/addressbook/phonenumber_pb.nim b/examples/addressbook/phonenumber_pb.nim index 21c3f76..b09f1a0 100644 --- a/examples/addressbook/phonenumber_pb.nim +++ b/examples/addressbook/phonenumber_pb.nim @@ -15,18 +15,6 @@ type number: string ftype: PhoneType -proc readPhoneType*(stream: ProtobufStream): PhoneType = - PhoneType(readUInt32(stream)) - -proc writePhoneType*(stream: ProtobufStream, value: PhoneType) = - writeUInt32(stream, uint32(value)) - -proc writePhoneType*(stream: ProtobufStream, value: PhoneType, fieldNumber: int) = - writeUInt32(stream, uint32(value), fieldNumber) - -proc sizeOfPhoneType*(value: PhoneType): uint64 = - sizeOfUInt32(uint32(value)) - proc newPhoneNumber*(): PhoneNumber proc writePhoneNumber*(stream: ProtobufStream, message: PhoneNumber) proc readPhoneNumber*(stream: ProtobufStream): PhoneNumber @@ -78,13 +66,13 @@ proc sizeOfPhoneNumber*(message: PhoneNumber): uint64 = result = result + sizeOfString(message.number) if hasftype(message): result = result + sizeOfTag(2, WireType.Varint) - result = result + sizeOfPhoneType(message.ftype) + result = result + sizeOfEnum[PhoneType](message.ftype) proc writePhoneNumber*(stream: ProtobufStream, message: PhoneNumber) = if hasnumber(message): writeString(stream, message.number, 1) if hasftype(message): - writePhoneType(stream, message.ftype, 2) + writeEnum(stream, message.ftype, 2) proc readPhoneNumber*(stream: ProtobufStream): PhoneNumber = result = newPhoneNumber() @@ -100,7 +88,7 @@ proc readPhoneNumber*(stream: ProtobufStream): PhoneNumber = setnumber(result, readString(stream)) of 2: expectWireType(wireType, WireType.Varint) - setftype(result, readPhoneType(stream)) + setftype(result, readEnum[PhoneType](stream)) else: skipField(stream, wireType) proc serialize*(message: PhoneNumber): string = diff --git a/examples/simple/simple_pb.nim b/examples/simple/simple_pb.nim index f644fd2..0b1a056 100644 --- a/examples/simple/simple_pb.nim +++ b/examples/simple/simple_pb.nim @@ -14,18 +14,6 @@ type a: int32 e: Test1_MyEnum -proc readTest1_MyEnum*(stream: ProtobufStream): Test1_MyEnum = - Test1_MyEnum(readUInt32(stream)) - -proc writeTest1_MyEnum*(stream: ProtobufStream, value: Test1_MyEnum) = - writeUInt32(stream, uint32(value)) - -proc writeTest1_MyEnum*(stream: ProtobufStream, value: Test1_MyEnum, fieldNumber: int) = - writeUInt32(stream, uint32(value), fieldNumber) - -proc sizeOfTest1_MyEnum*(value: Test1_MyEnum): uint64 = - sizeOfUInt32(uint32(value)) - proc newTest1*(): Test1 proc writeTest1*(stream: ProtobufStream, message: Test1) proc readTest1*(stream: ProtobufStream): Test1 @@ -77,13 +65,13 @@ proc sizeOfTest1*(message: Test1): uint64 = result = result + sizeOfInt32(message.a) if hase(message): result = result + sizeOfTag(2, WireType.Varint) - result = result + sizeOfTest1_MyEnum(message.e) + result = result + sizeOfEnum[Test1_MyEnum](message.e) proc writeTest1*(stream: ProtobufStream, message: Test1) = if hasa(message): writeInt32(stream, message.a, 1) if hase(message): - writeTest1_MyEnum(stream, message.e, 2) + writeEnum(stream, message.e, 2) proc readTest1*(stream: ProtobufStream): Test1 = result = newTest1() @@ -99,7 +87,7 @@ proc readTest1*(stream: ProtobufStream): Test1 = seta(result, readInt32(stream)) of 2: expectWireType(wireType, WireType.Varint) - sete(result, readTest1_MyEnum(stream)) + sete(result, readEnum[Test1_MyEnum](stream)) else: skipField(stream, wireType) proc serialize*(message: Test1): string = diff --git a/generator/protoc_gen_nim.nim b/generator/protoc_gen_nim.nim index 53cba86..b7c7e49 100644 --- a/generator/protoc_gen_nim.nim +++ b/generator/protoc_gen_nim.nim @@ -229,15 +229,27 @@ proc writeProc(field: Field): string = result = &"write{field.typeName}KV" elif isMessage(field): result = "writeMessage" + elif isEnum(field): + result = "writeEnum" else: result = &"write{field.typeName}" proc readProc(field: Field): string = if isMapEntry(field): result = &"read{field.typeName}KV" + elif isEnum(field): + result = &"readEnum[{field.typeName}]" else: result = &"read{field.typeName}" +proc sizeOfProc(field: Field): string = + if isMapEntry(field): + result = &"sizeOf{field.typeName}KV" + elif isEnum(field): + result = &"sizeOfEnum[{field.typeName}]" + else: + result = &"sizeOf{field.typeName}" + proc newField(file: ProtoFile, message: Message, desc: FieldDescriptorProto): Field = new(result) @@ -518,19 +530,6 @@ iterator genType(message: Message): string = for field in oneof.fields: yield indent(&"{quoteReserved(field.name)}: {field.fullType}", 4) -iterator genProcs(e: Enum): string = - yield &"proc read{e.names}*(stream: ProtobufStream): {e.names} =" - yield indent(&"{e.names}(readUInt32(stream))", 4) - yield "" - yield &"proc write{e.names}*(stream: ProtobufStream, value: {e.names}) =" - yield indent(&"writeUInt32(stream, uint32(value))", 4) - yield "" - yield &"proc write{e.names}*(stream: ProtobufStream, value: {e.names}, fieldNumber: int) =" - yield indent(&"writeUInt32(stream, uint32(value), fieldNumber)", 4) - yield "" - yield &"proc sizeOf{e.names}*(value: {e.names}): uint64 =" - yield indent(&"sizeOfUInt32(uint32(value))", 4) - iterator genNewMessageProc(msg: Message): string = yield &"proc new{msg.names}*(): {msg.names} =" yield indent("new(result)", 4) @@ -556,15 +555,11 @@ iterator genClearFieldProc(msg: Message, field: Field): string = yield "" iterator genHasFieldProc(msg: Message, field: Field): string = - # TODO: if map/seq, check also if there are values! yield &"proc has{field.name}*(message: {msg.names}): bool =" var check = indent(&"result = contains(message.hasField, {field.number})", 4) if isRepeated(field) or isMapEntry(field): check = &"{check} or (len(message.{field.accessor}) > 0)" yield check - # elif isMapEntry(field): - # base = &"{base} or (len(message.{}" - # yield indent(&"result = contains(message.hasField, {field.number})", 4) yield "" iterator genSetFieldProc(msg: Message, field: Field): string = @@ -609,7 +604,7 @@ iterator genWriteMessageProc(msg: Message): string = if isMapEntry(field): yield indent(&"for key, value in message.{field.name}:", 4) yield indent(&"writeTag(stream, {field.number}, {wiretypeStr(field)})", 8) - yield indent(&"writeVarint(stream, sizeOf{field.typeName}KV(key, value))", 8) + yield indent(&"writeVarint(stream, {field.sizeOfProc}(key, value))", 8) yield indent(&"{field.writeProc}(stream, key, value)", 8) elif isRepeated(field): if field.packed: @@ -741,14 +736,14 @@ iterator genSizeOfMapKVProc(message: Message): string = # Key (cannot be message or other complex field) yield indent(&"result = result + sizeOfTag({key.number}, {key.wiretypeStr})", 4) - yield indent(&"result = result + sizeOf{key.typeName}(key)", 4) + yield indent(&"result = result + {key.sizeOfProc}(key)", 4) # Value yield indent(&"result = result + sizeOfTag({value.number}, {value.wiretypeStr})", 4) if isMessage(value): - yield indent(&"result = result + sizeOfLengthDelimited(sizeOf{value.typeName}(value))", 4) + yield indent(&"result = result + sizeOfLengthDelimited({value.sizeOfProc}(value))", 4) else: - yield indent(&"result = result + sizeOf{value.typeName}(value)", 4) + yield indent(&"result = result + {value.sizeOfProc}(value)", 4) yield "" @@ -759,7 +754,7 @@ iterator genSizeOfMessageProc(msg: Message): string = yield indent(&"if has{field.name}(message):", 4) yield indent(&"var sizeOfKV = 0'u64", 8) yield indent(&"for key, value in message.{field.name}:", 8) - yield indent(&"sizeOfKV = sizeOfKV + sizeOf{field.typeName}KV(key, value)", 12) + yield indent(&"sizeOfKV = sizeOfKV + {field.sizeOfProc}(key, value)", 12) yield indent(&"result = result + sizeOfTag({field.number}, {field.wiretypeStr})", 8) yield indent(&"result = result + sizeOfLengthDelimited(sizeOfKV)", 8) elif isRepeated(field): @@ -771,16 +766,16 @@ iterator genSizeOfMessageProc(msg: Message): string = yield indent(&"for value in message.{field.name}:", 4) yield indent(&"result = result + sizeOfTag({field.number}, {field.wiretypeStr})", 8) if isMessage(field): - yield indent(&"result = result + sizeOfLengthDelimited(sizeOf{field.typeName}(value))", 8) + yield indent(&"result = result + sizeOfLengthDelimited({field.sizeOfProc}(value))", 8) else: - yield indent(&"result = result + sizeOf{field.typeName}(value)", 8) + yield indent(&"result = result + {field.sizeOfProc}(value)", 8) else: yield indent(&"if has{field.name}(message):", 4) yield indent(&"result = result + sizeOfTag({field.number}, {field.wiretypeStr})", 8) if isMessage(field): - yield indent(&"result = result + sizeOfLengthDelimited(sizeOf{field.typeName}(message.{field.accessor}))", 8) + yield indent(&"result = result + sizeOfLengthDelimited({field.sizeOfProc}(message.{field.accessor}))", 8) else: - yield indent(&"result = result + sizeOf{field.typeName}(message.{field.accessor})", 8) + yield indent(&"result = result + {field.sizeOfProc}(message.{field.accessor})", 8) if len(msg.fields) == 0: yield indent("result = 0", 4) @@ -793,8 +788,7 @@ iterator genMessageProcForwards(msg: Message): string = yield &"proc write{msg.names}*(stream: ProtobufStream, message: {msg.names})" yield &"proc read{msg.names}*(stream: ProtobufStream): {msg.names}" yield &"proc sizeOf{msg.names}*(message: {msg.names}): uint64" - - if isMapEntry(msg): + else: let key = mapKeyField(msg) value = mapValueField(msg) @@ -891,11 +885,6 @@ proc processFile(filename: string, fdesc: FileDescriptorProto, addLine(result.data, "") - for e in parsed.enums: - for line in genProcs(e): - addLine(result.data, line) - addLine(result.data, "") - for message in sortDependencies(parsed.messages): for line in genMessageProcForwards(message): addLine(result.data, line) diff --git a/src/nimpb/nimpb.nim b/src/nimpb/nimpb.nim index 02e70f1..909486d 100644 --- a/src/nimpb/nimpb.nim +++ b/src/nimpb/nimpb.nim @@ -397,6 +397,10 @@ proc readEnum*[T](stream: ProtobufStream): T = proc writeEnum*[T](stream: ProtobufStream, value: T) = writeUInt32(stream, uint32(value)) +proc writeEnum*[T](stream: ProtobufStream, value: T, fieldNumber: int) = + writeTag(stream, fieldNumber, WireType.Varint) + writeUInt32(stream, uint32(value)) + proc sizeOfVarint[T](value: T): uint64 = var tmp = uint64(value) while tmp >= 0x80'u64: diff --git a/src/nimpb/wkt/api_pb.nim b/src/nimpb/wkt/api_pb.nim index d050d41..a8a39cf 100644 --- a/src/nimpb/wkt/api_pb.nim +++ b/src/nimpb/wkt/api_pb.nim @@ -204,7 +204,7 @@ proc sizeOfgoogle_protobuf_Method*(message: google_protobuf_Method): uint64 = result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_Option(value)) if hassyntax(message): result = result + sizeOfTag(7, WireType.Varint) - result = result + sizeOfgoogle_protobuf_Syntax(message.syntax) + result = result + sizeOfEnum[google_protobuf_Syntax](message.syntax) proc writegoogle_protobuf_Method*(stream: ProtobufStream, message: google_protobuf_Method) = if hasname(message): @@ -220,7 +220,7 @@ proc writegoogle_protobuf_Method*(stream: ProtobufStream, message: google_protob for value in message.options: writeMessage(stream, value, 6) if hassyntax(message): - writegoogle_protobuf_Syntax(stream, message.syntax, 7) + writeEnum(stream, message.syntax, 7) proc readgoogle_protobuf_Method*(stream: ProtobufStream): google_protobuf_Method = result = newgoogle_protobuf_Method() @@ -255,7 +255,7 @@ proc readgoogle_protobuf_Method*(stream: ProtobufStream): google_protobuf_Method addoptions(result, readgoogle_protobuf_Option(pbs)) of 7: expectWireType(wireType, WireType.Varint) - setsyntax(result, readgoogle_protobuf_Syntax(stream)) + setsyntax(result, readEnum[google_protobuf_Syntax](stream)) else: skipField(stream, wireType) proc serialize*(message: google_protobuf_Method): string = @@ -520,7 +520,7 @@ proc sizeOfgoogle_protobuf_Api*(message: google_protobuf_Api): uint64 = result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_Mixin(value)) if hassyntax(message): result = result + sizeOfTag(7, WireType.Varint) - result = result + sizeOfgoogle_protobuf_Syntax(message.syntax) + result = result + sizeOfEnum[google_protobuf_Syntax](message.syntax) proc writegoogle_protobuf_Api*(stream: ProtobufStream, message: google_protobuf_Api) = if hasname(message): @@ -536,7 +536,7 @@ proc writegoogle_protobuf_Api*(stream: ProtobufStream, message: google_protobuf_ for value in message.mixins: writeMessage(stream, value, 6) if hassyntax(message): - writegoogle_protobuf_Syntax(stream, message.syntax, 7) + writeEnum(stream, message.syntax, 7) proc readgoogle_protobuf_Api*(stream: ProtobufStream): google_protobuf_Api = result = newgoogle_protobuf_Api() @@ -583,7 +583,7 @@ proc readgoogle_protobuf_Api*(stream: ProtobufStream): google_protobuf_Api = addmixins(result, readgoogle_protobuf_Mixin(pbs)) of 7: expectWireType(wireType, WireType.Varint) - setsyntax(result, readgoogle_protobuf_Syntax(stream)) + setsyntax(result, readEnum[google_protobuf_Syntax](stream)) else: skipField(stream, wireType) proc serialize*(message: google_protobuf_Api): string = diff --git a/src/nimpb/wkt/struct_pb.nim b/src/nimpb/wkt/struct_pb.nim index 7a03ae7..9b87501 100644 --- a/src/nimpb/wkt/struct_pb.nim +++ b/src/nimpb/wkt/struct_pb.nim @@ -35,18 +35,6 @@ type hasField: IntSet values: seq[google_protobuf_Value] -proc readgoogle_protobuf_NullValue*(stream: ProtobufStream): google_protobuf_NullValue = - google_protobuf_NullValue(readUInt32(stream)) - -proc writegoogle_protobuf_NullValue*(stream: ProtobufStream, value: google_protobuf_NullValue) = - writeUInt32(stream, uint32(value)) - -proc writegoogle_protobuf_NullValue*(stream: ProtobufStream, value: google_protobuf_NullValue, fieldNumber: int) = - writeUInt32(stream, uint32(value), fieldNumber) - -proc sizeOfgoogle_protobuf_NullValue*(value: google_protobuf_NullValue): uint64 = - sizeOfUInt32(uint32(value)) - proc writegoogle_protobuf_Struct_FieldsEntryKV(stream: ProtobufStream, key: string, value: google_protobuf_Value) proc readgoogle_protobuf_Struct_FieldsEntryKV(stream: ProtobufStream, tbl: TableRef[string, google_protobuf_Value]) proc sizeOfgoogle_protobuf_Struct_FieldsEntryKV(key: string, value: google_protobuf_Value): uint64 @@ -361,7 +349,7 @@ proc `list_value=`*(message: google_protobuf_Value, value: google_protobuf_ListV proc sizeOfgoogle_protobuf_Value*(message: google_protobuf_Value): uint64 = if hasnull_value(message): result = result + sizeOfTag(1, WireType.Varint) - result = result + sizeOfgoogle_protobuf_NullValue(message.kind.null_value) + result = result + sizeOfEnum[google_protobuf_NullValue](message.kind.null_value) if hasnumber_value(message): result = result + sizeOfTag(2, WireType.Fixed64) result = result + sizeOfDouble(message.kind.number_value) @@ -380,7 +368,7 @@ proc sizeOfgoogle_protobuf_Value*(message: google_protobuf_Value): uint64 = proc writegoogle_protobuf_Value*(stream: ProtobufStream, message: google_protobuf_Value) = if hasnull_value(message): - writegoogle_protobuf_NullValue(stream, message.kind.null_value, 1) + writeEnum(stream, message.kind.null_value, 1) if hasnumber_value(message): writeDouble(stream, message.kind.number_value, 2) if hasstring_value(message): @@ -403,7 +391,7 @@ proc readgoogle_protobuf_Value*(stream: ProtobufStream): google_protobuf_Value = raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: expectWireType(wireType, WireType.Varint) - setnull_value(result, readgoogle_protobuf_NullValue(stream)) + setnull_value(result, readEnum[google_protobuf_NullValue](stream)) of 2: expectWireType(wireType, WireType.Fixed64) setnumber_value(result, readDouble(stream)) diff --git a/src/nimpb/wkt/type_pb.nim b/src/nimpb/wkt/type_pb.nim index ac737af..00889e3 100644 --- a/src/nimpb/wkt/type_pb.nim +++ b/src/nimpb/wkt/type_pb.nim @@ -78,42 +78,6 @@ type name: string value: google_protobuf_Any -proc readgoogle_protobuf_Syntax*(stream: ProtobufStream): google_protobuf_Syntax = - google_protobuf_Syntax(readUInt32(stream)) - -proc writegoogle_protobuf_Syntax*(stream: ProtobufStream, value: google_protobuf_Syntax) = - writeUInt32(stream, uint32(value)) - -proc writegoogle_protobuf_Syntax*(stream: ProtobufStream, value: google_protobuf_Syntax, fieldNumber: int) = - writeUInt32(stream, uint32(value), fieldNumber) - -proc sizeOfgoogle_protobuf_Syntax*(value: google_protobuf_Syntax): uint64 = - sizeOfUInt32(uint32(value)) - -proc readgoogle_protobuf_Field_Kind*(stream: ProtobufStream): google_protobuf_Field_Kind = - google_protobuf_Field_Kind(readUInt32(stream)) - -proc writegoogle_protobuf_Field_Kind*(stream: ProtobufStream, value: google_protobuf_Field_Kind) = - writeUInt32(stream, uint32(value)) - -proc writegoogle_protobuf_Field_Kind*(stream: ProtobufStream, value: google_protobuf_Field_Kind, fieldNumber: int) = - writeUInt32(stream, uint32(value), fieldNumber) - -proc sizeOfgoogle_protobuf_Field_Kind*(value: google_protobuf_Field_Kind): uint64 = - sizeOfUInt32(uint32(value)) - -proc readgoogle_protobuf_Field_Cardinality*(stream: ProtobufStream): google_protobuf_Field_Cardinality = - google_protobuf_Field_Cardinality(readUInt32(stream)) - -proc writegoogle_protobuf_Field_Cardinality*(stream: ProtobufStream, value: google_protobuf_Field_Cardinality) = - writeUInt32(stream, uint32(value)) - -proc writegoogle_protobuf_Field_Cardinality*(stream: ProtobufStream, value: google_protobuf_Field_Cardinality, fieldNumber: int) = - writeUInt32(stream, uint32(value), fieldNumber) - -proc sizeOfgoogle_protobuf_Field_Cardinality*(value: google_protobuf_Field_Cardinality): uint64 = - sizeOfUInt32(uint32(value)) - proc newgoogle_protobuf_Option*(): google_protobuf_Option proc writegoogle_protobuf_Option*(stream: ProtobufStream, message: google_protobuf_Option) proc readgoogle_protobuf_Option*(stream: ProtobufStream): google_protobuf_Option @@ -419,10 +383,10 @@ proc `default_value=`*(message: google_protobuf_Field, value: string) {.inline.} proc sizeOfgoogle_protobuf_Field*(message: google_protobuf_Field): uint64 = if haskind(message): result = result + sizeOfTag(1, WireType.Varint) - result = result + sizeOfgoogle_protobuf_Field_Kind(message.kind) + result = result + sizeOfEnum[google_protobuf_Field_Kind](message.kind) if hascardinality(message): result = result + sizeOfTag(2, WireType.Varint) - result = result + sizeOfgoogle_protobuf_Field_Cardinality(message.cardinality) + result = result + sizeOfEnum[google_protobuf_Field_Cardinality](message.cardinality) if hasnumber(message): result = result + sizeOfTag(3, WireType.Varint) result = result + sizeOfInt32(message.number) @@ -450,9 +414,9 @@ proc sizeOfgoogle_protobuf_Field*(message: google_protobuf_Field): uint64 = proc writegoogle_protobuf_Field*(stream: ProtobufStream, message: google_protobuf_Field) = if haskind(message): - writegoogle_protobuf_Field_Kind(stream, message.kind, 1) + writeEnum(stream, message.kind, 1) if hascardinality(message): - writegoogle_protobuf_Field_Cardinality(stream, message.cardinality, 2) + writeEnum(stream, message.cardinality, 2) if hasnumber(message): writeInt32(stream, message.number, 3) if hasname(message): @@ -481,10 +445,10 @@ proc readgoogle_protobuf_Field*(stream: ProtobufStream): google_protobuf_Field = raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: expectWireType(wireType, WireType.Varint) - setkind(result, readgoogle_protobuf_Field_Kind(stream)) + setkind(result, readEnum[google_protobuf_Field_Kind](stream)) of 2: expectWireType(wireType, WireType.Varint) - setcardinality(result, readgoogle_protobuf_Field_Cardinality(stream)) + setcardinality(result, readEnum[google_protobuf_Field_Cardinality](stream)) of 3: expectWireType(wireType, WireType.Varint) setnumber(result, readInt32(stream)) @@ -671,7 +635,7 @@ proc sizeOfgoogle_protobuf_Type*(message: google_protobuf_Type): uint64 = result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_SourceContext(message.source_context)) if hassyntax(message): result = result + sizeOfTag(6, WireType.Varint) - result = result + sizeOfgoogle_protobuf_Syntax(message.syntax) + result = result + sizeOfEnum[google_protobuf_Syntax](message.syntax) proc writegoogle_protobuf_Type*(stream: ProtobufStream, message: google_protobuf_Type) = if hasname(message): @@ -685,7 +649,7 @@ proc writegoogle_protobuf_Type*(stream: ProtobufStream, message: google_protobuf if hassource_context(message): writeMessage(stream, message.source_context, 5) if hassyntax(message): - writegoogle_protobuf_Syntax(stream, message.syntax, 6) + writeEnum(stream, message.syntax, 6) proc readgoogle_protobuf_Type*(stream: ProtobufStream): google_protobuf_Type = result = newgoogle_protobuf_Type() @@ -725,7 +689,7 @@ proc readgoogle_protobuf_Type*(stream: ProtobufStream): google_protobuf_Type = setsource_context(result, readgoogle_protobuf_SourceContext(pbs)) of 6: expectWireType(wireType, WireType.Varint) - setsyntax(result, readgoogle_protobuf_Syntax(stream)) + setsyntax(result, readEnum[google_protobuf_Syntax](stream)) else: skipField(stream, wireType) proc serialize*(message: google_protobuf_Type): string = @@ -978,7 +942,7 @@ proc sizeOfgoogle_protobuf_Enum*(message: google_protobuf_Enum): uint64 = result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_SourceContext(message.source_context)) if hassyntax(message): result = result + sizeOfTag(5, WireType.Varint) - result = result + sizeOfgoogle_protobuf_Syntax(message.syntax) + result = result + sizeOfEnum[google_protobuf_Syntax](message.syntax) proc writegoogle_protobuf_Enum*(stream: ProtobufStream, message: google_protobuf_Enum) = if hasname(message): @@ -990,7 +954,7 @@ proc writegoogle_protobuf_Enum*(stream: ProtobufStream, message: google_protobuf if hassource_context(message): writeMessage(stream, message.source_context, 4) if hassyntax(message): - writegoogle_protobuf_Syntax(stream, message.syntax, 5) + writeEnum(stream, message.syntax, 5) proc readgoogle_protobuf_Enum*(stream: ProtobufStream): google_protobuf_Enum = result = newgoogle_protobuf_Enum() @@ -1027,7 +991,7 @@ proc readgoogle_protobuf_Enum*(stream: ProtobufStream): google_protobuf_Enum = setsource_context(result, readgoogle_protobuf_SourceContext(pbs)) of 5: expectWireType(wireType, WireType.Varint) - setsyntax(result, readgoogle_protobuf_Syntax(stream)) + setsyntax(result, readEnum[google_protobuf_Syntax](stream)) else: skipField(stream, wireType) proc serialize*(message: google_protobuf_Enum): string = |
