From 3c9ba205af26ed8d48e68a30932d18d8b64382e0 Mon Sep 17 00:00:00 2001 From: Oskari Timperi Date: Mon, 2 Apr 2018 12:02:02 +0300 Subject: Update well known types --- src/protobuf/wkt/any_pb.nim | 4 +++ src/protobuf/wkt/api_pb.nim | 32 ++++++++++++++++---- src/protobuf/wkt/duration_pb.nim | 4 +++ src/protobuf/wkt/field_mask_pb.nim | 3 ++ src/protobuf/wkt/source_context_pb.nim | 3 ++ src/protobuf/wkt/struct_pb.nim | 33 +++++++++++++++++---- src/protobuf/wkt/timestamp_pb.nim | 4 +++ src/protobuf/wkt/type_pb.nim | 54 ++++++++++++++++++++++++++++------ src/protobuf/wkt/wrappers_pb.nim | 27 +++++++++++++++++ 9 files changed, 144 insertions(+), 20 deletions(-) diff --git a/src/protobuf/wkt/any_pb.nim b/src/protobuf/wkt/any_pb.nim index 6a65b66..f7ef421 100644 --- a/src/protobuf/wkt/any_pb.nim +++ b/src/protobuf/wkt/any_pb.nim @@ -84,9 +84,13 @@ proc readgoogle_protobuf_Any*(stream: ProtobufStream): google_protobuf_Any = tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(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) diff --git a/src/protobuf/wkt/api_pb.nim b/src/protobuf/wkt/api_pb.nim index 3640371..52a3e63 100644 --- a/src/protobuf/wkt/api_pb.nim +++ b/src/protobuf/wkt/api_pb.nim @@ -254,23 +254,32 @@ proc readgoogle_protobuf_Method*(stream: ProtobufStream): google_protobuf_Method tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.LengthDelimited) setname(result, readString(stream)) of 2: + expectWireType(wireType, WireType.LengthDelimited) setrequest_type_url(result, readString(stream)) of 3: + expectWireType(wireType, WireType.Varint) setrequest_streaming(result, readBool(stream)) of 4: + expectWireType(wireType, WireType.LengthDelimited) setresponse_type_url(result, readString(stream)) of 5: + expectWireType(wireType, WireType.Varint) setresponse_streaming(result, readBool(stream)) of 6: + expectWireType(wireType, WireType.LengthDelimited) let size = readVarint(stream) - data = readStr(stream, int(size)) + data = safeReadStr(stream, int(size)) pbs = newProtobufStream(newStringStream(data)) addoptions(result, readgoogle_protobuf_Option(pbs)) of 7: + expectWireType(wireType, WireType.Varint) setsyntax(result, readgoogle_protobuf_Syntax(stream)) else: skipField(stream, wireType) @@ -355,9 +364,13 @@ proc readgoogle_protobuf_Mixin*(stream: ProtobufStream): google_protobuf_Mixin = tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.LengthDelimited) setname(result, readString(stream)) of 2: + expectWireType(wireType, WireType.LengthDelimited) setroot(result, readString(stream)) else: skipField(stream, wireType) @@ -595,35 +608,44 @@ proc readgoogle_protobuf_Api*(stream: ProtobufStream): google_protobuf_Api = tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.LengthDelimited) setname(result, readString(stream)) of 2: + expectWireType(wireType, WireType.LengthDelimited) let size = readVarint(stream) - data = readStr(stream, int(size)) + data = safeReadStr(stream, int(size)) pbs = newProtobufStream(newStringStream(data)) addmethods(result, readgoogle_protobuf_Method(pbs)) of 3: + expectWireType(wireType, WireType.LengthDelimited) let size = readVarint(stream) - data = readStr(stream, int(size)) + data = safeReadStr(stream, int(size)) pbs = newProtobufStream(newStringStream(data)) addoptions(result, readgoogle_protobuf_Option(pbs)) of 4: + expectWireType(wireType, WireType.LengthDelimited) setversion(result, readString(stream)) of 5: + expectWireType(wireType, WireType.LengthDelimited) let size = readVarint(stream) - data = readStr(stream, int(size)) + data = safeReadStr(stream, int(size)) pbs = newProtobufStream(newStringStream(data)) setsource_context(result, readgoogle_protobuf_SourceContext(pbs)) of 6: + expectWireType(wireType, WireType.LengthDelimited) let size = readVarint(stream) - data = readStr(stream, int(size)) + data = safeReadStr(stream, int(size)) pbs = newProtobufStream(newStringStream(data)) addmixins(result, readgoogle_protobuf_Mixin(pbs)) of 7: + expectWireType(wireType, WireType.Varint) setsyntax(result, readgoogle_protobuf_Syntax(stream)) else: skipField(stream, wireType) diff --git a/src/protobuf/wkt/duration_pb.nim b/src/protobuf/wkt/duration_pb.nim index bf0c7e5..c8f7926 100644 --- a/src/protobuf/wkt/duration_pb.nim +++ b/src/protobuf/wkt/duration_pb.nim @@ -84,9 +84,13 @@ proc readgoogle_protobuf_Duration*(stream: ProtobufStream): google_protobuf_Dura 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) diff --git a/src/protobuf/wkt/field_mask_pb.nim b/src/protobuf/wkt/field_mask_pb.nim index 6cf4a10..4ca76f3 100644 --- a/src/protobuf/wkt/field_mask_pb.nim +++ b/src/protobuf/wkt/field_mask_pb.nim @@ -62,7 +62,10 @@ proc readgoogle_protobuf_FieldMask*(stream: ProtobufStream): google_protobuf_Fie 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) diff --git a/src/protobuf/wkt/source_context_pb.nim b/src/protobuf/wkt/source_context_pb.nim index f12ac25..382927c 100644 --- a/src/protobuf/wkt/source_context_pb.nim +++ b/src/protobuf/wkt/source_context_pb.nim @@ -57,7 +57,10 @@ proc readgoogle_protobuf_SourceContext*(stream: ProtobufStream): google_protobuf tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.LengthDelimited) setfile_name(result, readString(stream)) else: skipField(stream, wireType) diff --git a/src/protobuf/wkt/struct_pb.nim b/src/protobuf/wkt/struct_pb.nim index 7508db4..9b272d2 100644 --- a/src/protobuf/wkt/struct_pb.nim +++ b/src/protobuf/wkt/struct_pb.nim @@ -49,6 +49,9 @@ proc newgoogle_protobuf_Struct_FieldsEntry*(): google_protobuf_Struct_FieldsEntr proc writegoogle_protobuf_Struct_FieldsEntry*(stream: ProtobufStream, message: google_protobuf_Struct_FieldsEntry) proc readgoogle_protobuf_Struct_FieldsEntry*(stream: ProtobufStream): google_protobuf_Struct_FieldsEntry proc sizeOfgoogle_protobuf_Struct_FieldsEntry*(message: google_protobuf_Struct_FieldsEntry): uint64 +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 proc newgoogle_protobuf_Struct*(): google_protobuf_Struct proc writegoogle_protobuf_Struct*(stream: ProtobufStream, message: google_protobuf_Struct) @@ -137,7 +140,7 @@ proc readgoogle_protobuf_Struct_FieldsEntryKV(stream: ProtobufStream, tbl: Table of 2: let size = readVarint(stream) - data = readStr(stream, int(size)) + data = safeReadStr(stream, int(size)) pbs = newProtobufStream(newStringStream(data)) value = readgoogle_protobuf_Value(pbs) gotValue = true @@ -177,12 +180,16 @@ proc readgoogle_protobuf_Struct_FieldsEntry*(stream: ProtobufStream): google_pro tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.LengthDelimited) setkey(result, readString(stream)) of 2: + expectWireType(wireType, WireType.LengthDelimited) let size = readVarint(stream) - data = readStr(stream, int(size)) + data = safeReadStr(stream, int(size)) pbs = newProtobufStream(newStringStream(data)) setvalue(result, readgoogle_protobuf_Value(pbs)) else: skipField(stream, wireType) @@ -244,10 +251,13 @@ proc readgoogle_protobuf_Struct*(stream: ProtobufStream): google_protobuf_Struct tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.LengthDelimited) let size = readVarint(stream) - data = readStr(stream, int(size)) + data = safeReadStr(stream, int(size)) pbs = newProtobufStream(newStringStream(data)) readgoogle_protobuf_Struct_FieldsEntryKV(pbs, result.fields) else: skipField(stream, wireType) @@ -314,10 +324,13 @@ proc readgoogle_protobuf_ListValue*(stream: ProtobufStream): google_protobuf_Lis tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.LengthDelimited) let size = readVarint(stream) - data = readStr(stream, int(size)) + data = safeReadStr(stream, int(size)) pbs = newProtobufStream(newStringStream(data)) addvalues(result, readgoogle_protobuf_Value(pbs)) else: skipField(stream, wireType) @@ -571,24 +584,32 @@ proc readgoogle_protobuf_Value*(stream: ProtobufStream): google_protobuf_Value = tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.Varint) setnull_value(result, readgoogle_protobuf_NullValue(stream)) of 2: + expectWireType(wireType, WireType.Fixed64) setnumber_value(result, readDouble(stream)) of 3: + expectWireType(wireType, WireType.LengthDelimited) setstring_value(result, readString(stream)) of 4: + expectWireType(wireType, WireType.Varint) setbool_value(result, readBool(stream)) of 5: + expectWireType(wireType, WireType.LengthDelimited) let size = readVarint(stream) - data = readStr(stream, int(size)) + data = safeReadStr(stream, int(size)) pbs = newProtobufStream(newStringStream(data)) setstruct_value(result, readgoogle_protobuf_Struct(pbs)) of 6: + expectWireType(wireType, WireType.LengthDelimited) let size = readVarint(stream) - data = readStr(stream, int(size)) + data = safeReadStr(stream, int(size)) pbs = newProtobufStream(newStringStream(data)) setlist_value(result, readgoogle_protobuf_ListValue(pbs)) else: skipField(stream, wireType) diff --git a/src/protobuf/wkt/timestamp_pb.nim b/src/protobuf/wkt/timestamp_pb.nim index fba910e..77fa52b 100644 --- a/src/protobuf/wkt/timestamp_pb.nim +++ b/src/protobuf/wkt/timestamp_pb.nim @@ -84,9 +84,13 @@ proc readgoogle_protobuf_Timestamp*(stream: ProtobufStream): google_protobuf_Tim 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) diff --git a/src/protobuf/wkt/type_pb.nim b/src/protobuf/wkt/type_pb.nim index 9f21806..b1b685c 100644 --- a/src/protobuf/wkt/type_pb.nim +++ b/src/protobuf/wkt/type_pb.nim @@ -200,12 +200,16 @@ proc readgoogle_protobuf_Option*(stream: ProtobufStream): google_protobuf_Option tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.LengthDelimited) setname(result, readString(stream)) of 2: + expectWireType(wireType, WireType.LengthDelimited) let size = readVarint(stream) - data = readStr(stream, int(size)) + data = safeReadStr(stream, int(size)) pbs = newProtobufStream(newStringStream(data)) setvalue(result, readgoogle_protobuf_Any(pbs)) else: skipField(stream, wireType) @@ -506,29 +510,41 @@ proc readgoogle_protobuf_Field*(stream: ProtobufStream): google_protobuf_Field = tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.Varint) setkind(result, readgoogle_protobuf_Field_Kind(stream)) of 2: + expectWireType(wireType, WireType.Varint) setcardinality(result, readgoogle_protobuf_Field_Cardinality(stream)) of 3: + expectWireType(wireType, WireType.Varint) setnumber(result, readInt32(stream)) of 4: + expectWireType(wireType, WireType.LengthDelimited) setname(result, readString(stream)) of 6: + expectWireType(wireType, WireType.LengthDelimited) settype_url(result, readString(stream)) of 7: + expectWireType(wireType, WireType.Varint) setoneof_index(result, readInt32(stream)) of 8: + expectWireType(wireType, WireType.Varint) setpacked(result, readBool(stream)) of 9: + expectWireType(wireType, WireType.LengthDelimited) let size = readVarint(stream) - data = readStr(stream, int(size)) + data = safeReadStr(stream, int(size)) pbs = newProtobufStream(newStringStream(data)) addoptions(result, readgoogle_protobuf_Option(pbs)) of 10: + expectWireType(wireType, WireType.LengthDelimited) setjson_name(result, readString(stream)) of 11: + expectWireType(wireType, WireType.LengthDelimited) setdefault_value(result, readString(stream)) else: skipField(stream, wireType) @@ -738,29 +754,37 @@ proc readgoogle_protobuf_Type*(stream: ProtobufStream): google_protobuf_Type = tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.LengthDelimited) setname(result, readString(stream)) of 2: + expectWireType(wireType, WireType.LengthDelimited) let size = readVarint(stream) - data = readStr(stream, int(size)) + data = safeReadStr(stream, int(size)) pbs = newProtobufStream(newStringStream(data)) addfields(result, readgoogle_protobuf_Field(pbs)) of 3: + expectWireType(wireType, WireType.LengthDelimited) addoneofs(result, readString(stream)) of 4: + expectWireType(wireType, WireType.LengthDelimited) let size = readVarint(stream) - data = readStr(stream, int(size)) + data = safeReadStr(stream, int(size)) pbs = newProtobufStream(newStringStream(data)) addoptions(result, readgoogle_protobuf_Option(pbs)) of 5: + expectWireType(wireType, WireType.LengthDelimited) let size = readVarint(stream) - data = readStr(stream, int(size)) + data = safeReadStr(stream, int(size)) pbs = newProtobufStream(newStringStream(data)) setsource_context(result, readgoogle_protobuf_SourceContext(pbs)) of 6: + expectWireType(wireType, WireType.Varint) setsyntax(result, readgoogle_protobuf_Syntax(stream)) else: skipField(stream, wireType) @@ -878,14 +902,19 @@ proc readgoogle_protobuf_EnumValue*(stream: ProtobufStream): google_protobuf_Enu tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.LengthDelimited) setname(result, readString(stream)) of 2: + expectWireType(wireType, WireType.Varint) setnumber(result, readInt32(stream)) of 3: + expectWireType(wireType, WireType.LengthDelimited) let size = readVarint(stream) - data = readStr(stream, int(size)) + data = safeReadStr(stream, int(size)) pbs = newProtobufStream(newStringStream(data)) addoptions(result, readgoogle_protobuf_Option(pbs)) else: skipField(stream, wireType) @@ -1065,27 +1094,34 @@ proc readgoogle_protobuf_Enum*(stream: ProtobufStream): google_protobuf_Enum = tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.LengthDelimited) setname(result, readString(stream)) of 2: + expectWireType(wireType, WireType.LengthDelimited) let size = readVarint(stream) - data = readStr(stream, int(size)) + data = safeReadStr(stream, int(size)) pbs = newProtobufStream(newStringStream(data)) addenumvalue(result, readgoogle_protobuf_EnumValue(pbs)) of 3: + expectWireType(wireType, WireType.LengthDelimited) let size = readVarint(stream) - data = readStr(stream, int(size)) + data = safeReadStr(stream, int(size)) pbs = newProtobufStream(newStringStream(data)) addoptions(result, readgoogle_protobuf_Option(pbs)) of 4: + expectWireType(wireType, WireType.LengthDelimited) let size = readVarint(stream) - data = readStr(stream, int(size)) + data = safeReadStr(stream, int(size)) pbs = newProtobufStream(newStringStream(data)) setsource_context(result, readgoogle_protobuf_SourceContext(pbs)) of 5: + expectWireType(wireType, WireType.Varint) setsyntax(result, readgoogle_protobuf_Syntax(stream)) else: skipField(stream, wireType) diff --git a/src/protobuf/wkt/wrappers_pb.nim b/src/protobuf/wkt/wrappers_pb.nim index dd8abe0..8cf1c69 100644 --- a/src/protobuf/wkt/wrappers_pb.nim +++ b/src/protobuf/wkt/wrappers_pb.nim @@ -129,7 +129,10 @@ proc readgoogle_protobuf_Int32Value*(stream: ProtobufStream): google_protobuf_In tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.Varint) setvalue(result, readInt32(stream)) else: skipField(stream, wireType) @@ -188,7 +191,10 @@ proc readgoogle_protobuf_Int64Value*(stream: ProtobufStream): google_protobuf_In tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.Varint) setvalue(result, readInt64(stream)) else: skipField(stream, wireType) @@ -247,7 +253,10 @@ proc readgoogle_protobuf_DoubleValue*(stream: ProtobufStream): google_protobuf_D tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.Fixed64) setvalue(result, readDouble(stream)) else: skipField(stream, wireType) @@ -306,7 +315,10 @@ proc readgoogle_protobuf_StringValue*(stream: ProtobufStream): google_protobuf_S tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.LengthDelimited) setvalue(result, readString(stream)) else: skipField(stream, wireType) @@ -365,7 +377,10 @@ proc readgoogle_protobuf_BoolValue*(stream: ProtobufStream): google_protobuf_Boo tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.Varint) setvalue(result, readBool(stream)) else: skipField(stream, wireType) @@ -424,7 +439,10 @@ proc readgoogle_protobuf_BytesValue*(stream: ProtobufStream): google_protobuf_By tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.LengthDelimited) setvalue(result, readBytes(stream)) else: skipField(stream, wireType) @@ -483,7 +501,10 @@ proc readgoogle_protobuf_FloatValue*(stream: ProtobufStream): google_protobuf_Fl tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.Fixed32) setvalue(result, readFloat(stream)) else: skipField(stream, wireType) @@ -542,7 +563,10 @@ proc readgoogle_protobuf_UInt64Value*(stream: ProtobufStream): google_protobuf_U tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.Varint) setvalue(result, readUInt64(stream)) else: skipField(stream, wireType) @@ -601,7 +625,10 @@ proc readgoogle_protobuf_UInt32Value*(stream: ProtobufStream): google_protobuf_U tag = readTag(stream) wireType = getTagWireType(tag) case getTagFieldNumber(tag) + of 0: + raise newException(InvalidFieldNumberError, "Invalid field number: 0") of 1: + expectWireType(wireType, WireType.Varint) setvalue(result, readUInt32(stream)) else: skipField(stream, wireType) -- cgit v1.2.3