aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOskari Timperi <oskari.timperi@iki.fi>2018-04-06 14:25:44 +0300
committerOskari Timperi <oskari.timperi@iki.fi>2018-04-06 14:25:44 +0300
commit640dff531876f8b2b728ea736ba182d2c6041bf1 (patch)
treee5154d4c45b2d129cd9aa8c43449bd519a17fbe1 /src
parent203b887dd33f52ad88d3afd8ef54ea444319346a (diff)
downloadnimpb_protoc-640dff531876f8b2b728ea736ba182d2c6041bf1.tar.gz
nimpb_protoc-640dff531876f8b2b728ea736ba182d2c6041bf1.zip
Use the plugin to generate descriptor_pb and plugin_pb and use those
Diffstat (limited to 'src')
-rw-r--r--src/nimpb_buildpkg/descriptor_pb.nim5164
-rw-r--r--src/nimpb_buildpkg/gen.nim655
-rw-r--r--src/nimpb_buildpkg/plugin.nim202
-rw-r--r--src/nimpb_buildpkg/plugin_pb.nim697
4 files changed, 5443 insertions, 1275 deletions
diff --git a/src/nimpb_buildpkg/descriptor_pb.nim b/src/nimpb_buildpkg/descriptor_pb.nim
index 923885f..fafe11c 100644
--- a/src/nimpb_buildpkg/descriptor_pb.nim
+++ b/src/nimpb_buildpkg/descriptor_pb.nim
@@ -1,368 +1,4804 @@
+# Generated by protoc_gen_nim. Do not edit!
+
import intsets
-import gen
import nimpb/nimpb
-const
- FileDescriptorSetDesc = MessageDesc(
- name: "FileDescriptorSet",
- fields: @[
- FieldDesc(
- name: "files",
- number: 1,
- ftype: FieldType.Message,
- label: FieldLabel.Repeated,
- typeName: "FileDescriptorProto",
- packed: false,
- oneofIdx: -1,
- )
- ]
- )
-
- FileDescriptorProtoDesc = MessageDesc(
- name: "FileDescriptorProto",
- fields: @[
- FieldDesc(
- name: "name",
- number: 1,
- ftype: FieldType.String,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "package",
- number: 2,
- ftype: FieldType.String,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "dependency",
- number: 3,
- ftype: FieldType.String,
- label: FieldLabel.Repeated,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "message_type",
- number: 4,
- ftype: FieldType.Message,
- label: FieldLabel.Repeated,
- typeName: "DescriptorProto",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "enum_type",
- number: 5,
- ftype: FieldType.Message,
- label: FieldLabel.Repeated,
- typeName: "EnumDescriptorProto",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "syntax",
- number: 12,
- ftype: FieldType.String,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- ]
- )
-
- DescriptorProtoDesc = MessageDesc(
- name: "DescriptorProto",
- fields: @[
- FieldDesc(
- name: "name",
- number: 1,
- ftype: FieldType.String,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "field",
- number: 2,
- ftype: FieldType.Message,
- label: FieldLabel.Repeated,
- typeName: "FieldDescriptorProto",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "nested_type",
- number: 3,
- ftype: FieldType.Message,
- label: FieldLabel.Repeated,
- typeName: "DescriptorProto",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "enum_type",
- number: 4,
- ftype: FieldType.Message,
- label: FieldLabel.Repeated,
- typeName: "EnumDescriptorProto",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "oneof_decl",
- number: 8,
- ftype: FieldType.Message,
- label: FieldLabel.Repeated,
- typeName: "OneofDescriptorProto",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "options",
- number: 7,
- ftype: FieldType.Message,
- label: FieldLabel.Optional,
- typeName: "MessageOptions",
- packed: false,
- oneofIdx: -1,
- ),
- ]
- )
-
- EnumDescriptorProtoDesc = MessageDesc(
- name: "EnumDescriptorProto",
- fields: @[
- FieldDesc(
- name: "name",
- number: 1,
- ftype: FieldType.String,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "value",
- number: 2,
- ftype: FieldType.Message,
- label: FieldLabel.Repeated,
- typeName: "EnumValueDescriptorProto",
- packed: false,
- oneofIdx: -1,
- ),
- ]
- )
-
- EnumValueDescriptorProtoDesc = MessageDesc(
- name: "EnumValueDescriptorProto",
- fields: @[
- FieldDesc(
- name: "name",
- number: 1,
- ftype: FieldType.String,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "number",
- number: 2,
- ftype: FieldType.Int32,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- ]
- )
-
- FieldDescriptorProtoDesc = MessageDesc(
- name: "FieldDescriptorProto",
- fields: @[
- FieldDesc(
- name: "name",
- number: 1,
- ftype: FieldType.String,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "number",
- number: 3,
- ftype: FieldType.Int32,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "label",
- number: 4,
- ftype: FieldType.Enum,
- label: FieldLabel.Optional,
- typeName: "FieldDescriptorProto_Label",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "type",
- number: 5,
- ftype: FieldType.Enum,
- label: FieldLabel.Optional,
- typeName: "FieldDescriptorProto_Type",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "type_name",
- number: 6,
- ftype: FieldType.String,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "options",
- number: 8,
- ftype: FieldType.Message,
- label: FieldLabel.Optional,
- typeName: "FieldOptions",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "oneof_index",
- number: 9,
- ftype: FieldType.Int32,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- ]
- )
-
- FieldDescriptorProto_LabelDesc = EnumDesc(
- name: "FieldDescriptorProto_Label",
- values: @[
- EnumValueDesc(name: "LABEL_OPTIONAL", number: 1),
- EnumValueDesc(name: "LABEL_REQUIRED", number: 2),
- EnumValueDesc(name: "LABEL_REPEATED", number: 3)
- ]
- )
-
- FieldDescriptorProto_TypeDesc = EnumDesc(
- name: "FieldDescriptorProto_Type",
- values: @[
- EnumValueDesc(name: "TYPE_DOUBLE", number: 1),
- EnumValueDesc(name: "TYPE_FLOAT", number: 2),
- EnumValueDesc(name: "TYPE_INT64", number: 3),
- EnumValueDesc(name: "TYPE_UINT64", number: 4),
- EnumValueDesc(name: "TYPE_INT32", number: 5),
- EnumValueDesc(name: "TYPE_FIXED64", number: 6),
- EnumValueDesc(name: "TYPE_FIXED32", number: 7),
- EnumValueDesc(name: "TYPE_BOOL", number: 8),
- EnumValueDesc(name: "TYPE_STRING", number: 9),
- EnumValueDesc(name: "TYPE_GROUP", number: 10),
- EnumValueDesc(name: "TYPE_MESSAGE", number: 11),
- EnumValueDesc(name: "TYPE_BYTES", number: 12),
- EnumValueDesc(name: "TYPE_UINT32", number: 13),
- EnumValueDesc(name: "TYPE_ENUM", number: 14),
- EnumValueDesc(name: "TYPE_SFIXED32", number: 15),
- EnumValueDesc(name: "TYPE_SFIXED64", number: 16),
- EnumValueDesc(name: "TYPE_SINT32", number: 17),
- EnumValueDesc(name: "TYPE_SINT64", number: 18),
- ]
- )
-
- MessageOptionsDesc = MessageDesc(
- name: "MessageOptions",
- fields: @[
- FieldDesc(
- name: "map_entry",
- number: 7,
- ftype: FieldType.Bool,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- ]
- )
-
- FieldOptionsDesc = MessageDesc(
- name: "FieldOptions",
- fields: @[
- FieldDesc(
- name: "packed",
- number: 2,
- ftype: FieldType.Bool,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- ]
- )
-
- OneofDescriptorProtoDesc = MessageDesc(
- name: "OneofDescriptorProto",
- fields: @[
- FieldDesc(
- name: "name",
- number: 1,
- ftype: FieldType.String,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- ]
- )
-
-generateEnumType(FieldDescriptorProto_LabelDesc)
-generateEnumProcs(FieldDescriptorProto_LabelDesc)
-
-generateEnumType(FieldDescriptorProto_TypeDesc)
-generateEnumProcs(FieldDescriptorProto_TypeDesc)
-
-generateMessageType(EnumValueDescriptorProtoDesc)
-generateMessageProcs(EnumValueDescriptorProtoDesc)
-
-generateMessageType(EnumDescriptorProtoDesc)
-generateMessageProcs(EnumDescriptorProtoDesc)
-
-generateMessageType(FieldOptionsDesc)
-generateMessageProcs(FieldOptionsDesc)
-
-generateMessageType(FieldDescriptorProtoDesc)
-generateMessageProcs(FieldDescriptorProtoDesc)
-
-generateMessageType(OneofDescriptorProtoDesc)
-generateMessageProcs(OneofDescriptorProtoDesc)
-
-generateMessageType(MessageOptionsDesc)
-generateMessageProcs(MessageOptionsDesc)
-
-generateMessageType(DescriptorProtoDesc)
-generateMessageProcs(DescriptorProtoDesc)
-
-generateMessageType(FileDescriptorProtoDesc)
-generateMessageProcs(FileDescriptorProtoDesc)
-
-generateMessageType(FileDescriptorSetDesc)
-generateMessageProcs(FileDescriptorSetDesc)
+type
+ google_protobuf_FieldDescriptorProto_Type* {.pure.} = enum
+ TYPE_DOUBLE = 1
+ TYPE_FLOAT = 2
+ TYPE_INT64 = 3
+ TYPE_UINT64 = 4
+ TYPE_INT32 = 5
+ TYPE_FIXED64 = 6
+ TYPE_FIXED32 = 7
+ TYPE_BOOL = 8
+ TYPE_STRING = 9
+ TYPE_GROUP = 10
+ TYPE_MESSAGE = 11
+ TYPE_BYTES = 12
+ TYPE_UINT32 = 13
+ TYPE_ENUM = 14
+ TYPE_SFIXED32 = 15
+ TYPE_SFIXED64 = 16
+ TYPE_SINT32 = 17
+ TYPE_SINT64 = 18
+ google_protobuf_FieldDescriptorProto_Label* {.pure.} = enum
+ LABEL_OPTIONAL = 1
+ LABEL_REQUIRED = 2
+ LABEL_REPEATED = 3
+ google_protobuf_FileOptions_OptimizeMode* {.pure.} = enum
+ SPEED = 1
+ CODE_SIZE = 2
+ LITE_RUNTIME = 3
+ google_protobuf_FieldOptions_CType* {.pure.} = enum
+ STRING = 0
+ CORD = 1
+ STRING_PIECE = 2
+ google_protobuf_FieldOptions_JSType* {.pure.} = enum
+ JS_NORMAL = 0
+ JS_STRING = 1
+ JS_NUMBER = 2
+ google_protobuf_MethodOptions_IdempotencyLevel* {.pure.} = enum
+ IDEMPOTENCY_UNKNOWN = 0
+ NO_SIDE_EFFECTS = 1
+ IDEMPOTENT = 2
+ google_protobuf_FileDescriptorSet* = ref google_protobuf_FileDescriptorSetObj
+ google_protobuf_FileDescriptorSetObj* = object of RootObj
+ hasField: IntSet
+ file: seq[google_protobuf_FileDescriptorProto]
+ google_protobuf_FileDescriptorProto* = ref google_protobuf_FileDescriptorProtoObj
+ google_protobuf_FileDescriptorProtoObj* = object of RootObj
+ hasField: IntSet
+ name: string
+ package: string
+ dependency: seq[string]
+ public_dependency: seq[int32]
+ weak_dependency: seq[int32]
+ message_type: seq[google_protobuf_DescriptorProto]
+ enum_type: seq[google_protobuf_EnumDescriptorProto]
+ service: seq[google_protobuf_ServiceDescriptorProto]
+ extension: seq[google_protobuf_FieldDescriptorProto]
+ options: google_protobuf_FileOptions
+ source_code_info: google_protobuf_SourceCodeInfo
+ syntax: string
+ google_protobuf_DescriptorProto* = ref google_protobuf_DescriptorProtoObj
+ google_protobuf_DescriptorProtoObj* = object of RootObj
+ hasField: IntSet
+ name: string
+ field: seq[google_protobuf_FieldDescriptorProto]
+ extension: seq[google_protobuf_FieldDescriptorProto]
+ nested_type: seq[google_protobuf_DescriptorProto]
+ enum_type: seq[google_protobuf_EnumDescriptorProto]
+ extension_range: seq[google_protobuf_DescriptorProto_ExtensionRange]
+ oneof_decl: seq[google_protobuf_OneofDescriptorProto]
+ options: google_protobuf_MessageOptions
+ reserved_range: seq[google_protobuf_DescriptorProto_ReservedRange]
+ reserved_name: seq[string]
+ google_protobuf_DescriptorProto_ReservedRange* = ref google_protobuf_DescriptorProto_ReservedRangeObj
+ google_protobuf_DescriptorProto_ReservedRangeObj* = object of RootObj
+ hasField: IntSet
+ start: int32
+ fend: int32
+ google_protobuf_DescriptorProto_ExtensionRange* = ref google_protobuf_DescriptorProto_ExtensionRangeObj
+ google_protobuf_DescriptorProto_ExtensionRangeObj* = object of RootObj
+ hasField: IntSet
+ start: int32
+ fend: int32
+ options: google_protobuf_ExtensionRangeOptions
+ google_protobuf_ExtensionRangeOptions* = ref google_protobuf_ExtensionRangeOptionsObj
+ google_protobuf_ExtensionRangeOptionsObj* = object of RootObj
+ hasField: IntSet
+ uninterpreted_option: seq[google_protobuf_UninterpretedOption]
+ google_protobuf_FieldDescriptorProto* = ref google_protobuf_FieldDescriptorProtoObj
+ google_protobuf_FieldDescriptorProtoObj* = object of RootObj
+ hasField: IntSet
+ name: string
+ number: int32
+ label: google_protobuf_FieldDescriptorProto_Label
+ ftype: google_protobuf_FieldDescriptorProto_Type
+ type_name: string
+ extendee: string
+ default_value: string
+ oneof_index: int32
+ json_name: string
+ options: google_protobuf_FieldOptions
+ google_protobuf_OneofDescriptorProto* = ref google_protobuf_OneofDescriptorProtoObj
+ google_protobuf_OneofDescriptorProtoObj* = object of RootObj
+ hasField: IntSet
+ name: string
+ options: google_protobuf_OneofOptions
+ google_protobuf_EnumDescriptorProto* = ref google_protobuf_EnumDescriptorProtoObj
+ google_protobuf_EnumDescriptorProtoObj* = object of RootObj
+ hasField: IntSet
+ name: string
+ value: seq[google_protobuf_EnumValueDescriptorProto]
+ options: google_protobuf_EnumOptions
+ reserved_range: seq[google_protobuf_EnumDescriptorProto_EnumReservedRange]
+ reserved_name: seq[string]
+ google_protobuf_EnumDescriptorProto_EnumReservedRange* = ref google_protobuf_EnumDescriptorProto_EnumReservedRangeObj
+ google_protobuf_EnumDescriptorProto_EnumReservedRangeObj* = object of RootObj
+ hasField: IntSet
+ start: int32
+ fend: int32
+ google_protobuf_EnumValueDescriptorProto* = ref google_protobuf_EnumValueDescriptorProtoObj
+ google_protobuf_EnumValueDescriptorProtoObj* = object of RootObj
+ hasField: IntSet
+ name: string
+ number: int32
+ options: google_protobuf_EnumValueOptions
+ google_protobuf_ServiceDescriptorProto* = ref google_protobuf_ServiceDescriptorProtoObj
+ google_protobuf_ServiceDescriptorProtoObj* = object of RootObj
+ hasField: IntSet
+ name: string
+ fmethod: seq[google_protobuf_MethodDescriptorProto]
+ options: google_protobuf_ServiceOptions
+ google_protobuf_MethodDescriptorProto* = ref google_protobuf_MethodDescriptorProtoObj
+ google_protobuf_MethodDescriptorProtoObj* = object of RootObj
+ hasField: IntSet
+ name: string
+ input_type: string
+ output_type: string
+ options: google_protobuf_MethodOptions
+ client_streaming: bool
+ server_streaming: bool
+ google_protobuf_FileOptions* = ref google_protobuf_FileOptionsObj
+ google_protobuf_FileOptionsObj* = object of RootObj
+ hasField: IntSet
+ java_package: string
+ java_outer_classname: string
+ java_multiple_files: bool
+ java_generate_equals_and_hash: bool
+ java_string_check_utf8: bool
+ optimize_for: google_protobuf_FileOptions_OptimizeMode
+ go_package: string
+ cc_generic_services: bool
+ java_generic_services: bool
+ py_generic_services: bool
+ php_generic_services: bool
+ deprecated: bool
+ cc_enable_arenas: bool
+ objc_class_prefix: string
+ csharp_namespace: string
+ swift_prefix: string
+ php_class_prefix: string
+ php_namespace: string
+ uninterpreted_option: seq[google_protobuf_UninterpretedOption]
+ google_protobuf_MessageOptions* = ref google_protobuf_MessageOptionsObj
+ google_protobuf_MessageOptionsObj* = object of RootObj
+ hasField: IntSet
+ message_set_wire_format: bool
+ no_standard_descriptor_accessor: bool
+ deprecated: bool
+ map_entry: bool
+ uninterpreted_option: seq[google_protobuf_UninterpretedOption]
+ google_protobuf_FieldOptions* = ref google_protobuf_FieldOptionsObj
+ google_protobuf_FieldOptionsObj* = object of RootObj
+ hasField: IntSet
+ ctype: google_protobuf_FieldOptions_CType
+ packed: bool
+ jstype: google_protobuf_FieldOptions_JSType
+ lazy: bool
+ deprecated: bool
+ weak: bool
+ uninterpreted_option: seq[google_protobuf_UninterpretedOption]
+ google_protobuf_OneofOptions* = ref google_protobuf_OneofOptionsObj
+ google_protobuf_OneofOptionsObj* = object of RootObj
+ hasField: IntSet
+ uninterpreted_option: seq[google_protobuf_UninterpretedOption]
+ google_protobuf_EnumOptions* = ref google_protobuf_EnumOptionsObj
+ google_protobuf_EnumOptionsObj* = object of RootObj
+ hasField: IntSet
+ allow_alias: bool
+ deprecated: bool
+ uninterpreted_option: seq[google_protobuf_UninterpretedOption]
+ google_protobuf_EnumValueOptions* = ref google_protobuf_EnumValueOptionsObj
+ google_protobuf_EnumValueOptionsObj* = object of RootObj
+ hasField: IntSet
+ deprecated: bool
+ uninterpreted_option: seq[google_protobuf_UninterpretedOption]
+ google_protobuf_ServiceOptions* = ref google_protobuf_ServiceOptionsObj
+ google_protobuf_ServiceOptionsObj* = object of RootObj
+ hasField: IntSet
+ deprecated: bool
+ uninterpreted_option: seq[google_protobuf_UninterpretedOption]
+ google_protobuf_MethodOptions* = ref google_protobuf_MethodOptionsObj
+ google_protobuf_MethodOptionsObj* = object of RootObj
+ hasField: IntSet
+ deprecated: bool
+ idempotency_level: google_protobuf_MethodOptions_IdempotencyLevel
+ uninterpreted_option: seq[google_protobuf_UninterpretedOption]
+ google_protobuf_UninterpretedOption* = ref google_protobuf_UninterpretedOptionObj
+ google_protobuf_UninterpretedOptionObj* = object of RootObj
+ hasField: IntSet
+ name: seq[google_protobuf_UninterpretedOption_NamePart]
+ identifier_value: string
+ positive_int_value: uint64
+ negative_int_value: int64
+ double_value: float64
+ string_value: bytes
+ aggregate_value: string
+ google_protobuf_UninterpretedOption_NamePart* = ref google_protobuf_UninterpretedOption_NamePartObj
+ google_protobuf_UninterpretedOption_NamePartObj* = object of RootObj
+ hasField: IntSet
+ name_part: string
+ is_extension: bool
+ google_protobuf_SourceCodeInfo* = ref google_protobuf_SourceCodeInfoObj
+ google_protobuf_SourceCodeInfoObj* = object of RootObj
+ hasField: IntSet
+ location: seq[google_protobuf_SourceCodeInfo_Location]
+ google_protobuf_SourceCodeInfo_Location* = ref google_protobuf_SourceCodeInfo_LocationObj
+ google_protobuf_SourceCodeInfo_LocationObj* = object of RootObj
+ hasField: IntSet
+ path: seq[int32]
+ span: seq[int32]
+ leading_comments: string
+ trailing_comments: string
+ leading_detached_comments: seq[string]
+ google_protobuf_GeneratedCodeInfo* = ref google_protobuf_GeneratedCodeInfoObj
+ google_protobuf_GeneratedCodeInfoObj* = object of RootObj
+ hasField: IntSet
+ annotation: seq[google_protobuf_GeneratedCodeInfo_Annotation]
+ google_protobuf_GeneratedCodeInfo_Annotation* = ref google_protobuf_GeneratedCodeInfo_AnnotationObj
+ google_protobuf_GeneratedCodeInfo_AnnotationObj* = object of RootObj
+ hasField: IntSet
+ path: seq[int32]
+ source_file: string
+ begin: int32
+ fend: int32
+
+proc newgoogle_protobuf_UninterpretedOption_NamePart*(): google_protobuf_UninterpretedOption_NamePart
+proc writegoogle_protobuf_UninterpretedOption_NamePart*(stream: ProtobufStream, message: google_protobuf_UninterpretedOption_NamePart)
+proc readgoogle_protobuf_UninterpretedOption_NamePart*(stream: ProtobufStream): google_protobuf_UninterpretedOption_NamePart
+proc sizeOfgoogle_protobuf_UninterpretedOption_NamePart*(message: google_protobuf_UninterpretedOption_NamePart): uint64
+
+proc newgoogle_protobuf_UninterpretedOption*(): google_protobuf_UninterpretedOption
+proc writegoogle_protobuf_UninterpretedOption*(stream: ProtobufStream, message: google_protobuf_UninterpretedOption)
+proc readgoogle_protobuf_UninterpretedOption*(stream: ProtobufStream): google_protobuf_UninterpretedOption
+proc sizeOfgoogle_protobuf_UninterpretedOption*(message: google_protobuf_UninterpretedOption): uint64
+
+proc newgoogle_protobuf_EnumValueOptions*(): google_protobuf_EnumValueOptions
+proc writegoogle_protobuf_EnumValueOptions*(stream: ProtobufStream, message: google_protobuf_EnumValueOptions)
+proc readgoogle_protobuf_EnumValueOptions*(stream: ProtobufStream): google_protobuf_EnumValueOptions
+proc sizeOfgoogle_protobuf_EnumValueOptions*(message: google_protobuf_EnumValueOptions): uint64
+
+proc newgoogle_protobuf_EnumValueDescriptorProto*(): google_protobuf_EnumValueDescriptorProto
+proc writegoogle_protobuf_EnumValueDescriptorProto*(stream: ProtobufStream, message: google_protobuf_EnumValueDescriptorProto)
+proc readgoogle_protobuf_EnumValueDescriptorProto*(stream: ProtobufStream): google_protobuf_EnumValueDescriptorProto
+proc sizeOfgoogle_protobuf_EnumValueDescriptorProto*(message: google_protobuf_EnumValueDescriptorProto): uint64
+
+proc newgoogle_protobuf_EnumDescriptorProto_EnumReservedRange*(): google_protobuf_EnumDescriptorProto_EnumReservedRange
+proc writegoogle_protobuf_EnumDescriptorProto_EnumReservedRange*(stream: ProtobufStream, message: google_protobuf_EnumDescriptorProto_EnumReservedRange)
+proc readgoogle_protobuf_EnumDescriptorProto_EnumReservedRange*(stream: ProtobufStream): google_protobuf_EnumDescriptorProto_EnumReservedRange
+proc sizeOfgoogle_protobuf_EnumDescriptorProto_EnumReservedRange*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange): uint64
+
+proc newgoogle_protobuf_EnumOptions*(): google_protobuf_EnumOptions
+proc writegoogle_protobuf_EnumOptions*(stream: ProtobufStream, message: google_protobuf_EnumOptions)
+proc readgoogle_protobuf_EnumOptions*(stream: ProtobufStream): google_protobuf_EnumOptions
+proc sizeOfgoogle_protobuf_EnumOptions*(message: google_protobuf_EnumOptions): uint64
+
+proc newgoogle_protobuf_EnumDescriptorProto*(): google_protobuf_EnumDescriptorProto
+proc writegoogle_protobuf_EnumDescriptorProto*(stream: ProtobufStream, message: google_protobuf_EnumDescriptorProto)
+proc readgoogle_protobuf_EnumDescriptorProto*(stream: ProtobufStream): google_protobuf_EnumDescriptorProto
+proc sizeOfgoogle_protobuf_EnumDescriptorProto*(message: google_protobuf_EnumDescriptorProto): uint64
+
+proc newgoogle_protobuf_ExtensionRangeOptions*(): google_protobuf_ExtensionRangeOptions
+proc writegoogle_protobuf_ExtensionRangeOptions*(stream: ProtobufStream, message: google_protobuf_ExtensionRangeOptions)
+proc readgoogle_protobuf_ExtensionRangeOptions*(stream: ProtobufStream): google_protobuf_ExtensionRangeOptions
+proc sizeOfgoogle_protobuf_ExtensionRangeOptions*(message: google_protobuf_ExtensionRangeOptions): uint64
+
+proc newgoogle_protobuf_SourceCodeInfo_Location*(): google_protobuf_SourceCodeInfo_Location
+proc writegoogle_protobuf_SourceCodeInfo_Location*(stream: ProtobufStream, message: google_protobuf_SourceCodeInfo_Location)
+proc readgoogle_protobuf_SourceCodeInfo_Location*(stream: ProtobufStream): google_protobuf_SourceCodeInfo_Location
+proc sizeOfgoogle_protobuf_SourceCodeInfo_Location*(message: google_protobuf_SourceCodeInfo_Location): uint64
+
+proc newgoogle_protobuf_SourceCodeInfo*(): google_protobuf_SourceCodeInfo
+proc writegoogle_protobuf_SourceCodeInfo*(stream: ProtobufStream, message: google_protobuf_SourceCodeInfo)
+proc readgoogle_protobuf_SourceCodeInfo*(stream: ProtobufStream): google_protobuf_SourceCodeInfo
+proc sizeOfgoogle_protobuf_SourceCodeInfo*(message: google_protobuf_SourceCodeInfo): uint64
+
+proc newgoogle_protobuf_FieldOptions*(): google_protobuf_FieldOptions
+proc writegoogle_protobuf_FieldOptions*(stream: ProtobufStream, message: google_protobuf_FieldOptions)
+proc readgoogle_protobuf_FieldOptions*(stream: ProtobufStream): google_protobuf_FieldOptions
+proc sizeOfgoogle_protobuf_FieldOptions*(message: google_protobuf_FieldOptions): uint64
+
+proc newgoogle_protobuf_FieldDescriptorProto*(): google_protobuf_FieldDescriptorProto
+proc writegoogle_protobuf_FieldDescriptorProto*(stream: ProtobufStream, message: google_protobuf_FieldDescriptorProto)
+proc readgoogle_protobuf_FieldDescriptorProto*(stream: ProtobufStream): google_protobuf_FieldDescriptorProto
+proc sizeOfgoogle_protobuf_FieldDescriptorProto*(message: google_protobuf_FieldDescriptorProto): uint64
+
+proc newgoogle_protobuf_DescriptorProto_ExtensionRange*(): google_protobuf_DescriptorProto_ExtensionRange
+proc writegoogle_protobuf_DescriptorProto_ExtensionRange*(stream: ProtobufStream, message: google_protobuf_DescriptorProto_ExtensionRange)
+proc readgoogle_protobuf_DescriptorProto_ExtensionRange*(stream: ProtobufStream): google_protobuf_DescriptorProto_ExtensionRange
+proc sizeOfgoogle_protobuf_DescriptorProto_ExtensionRange*(message: google_protobuf_DescriptorProto_ExtensionRange): uint64
+
+proc newgoogle_protobuf_MessageOptions*(): google_protobuf_MessageOptions
+proc writegoogle_protobuf_MessageOptions*(stream: ProtobufStream, message: google_protobuf_MessageOptions)
+proc readgoogle_protobuf_MessageOptions*(stream: ProtobufStream): google_protobuf_MessageOptions
+proc sizeOfgoogle_protobuf_MessageOptions*(message: google_protobuf_MessageOptions): uint64
+
+proc newgoogle_protobuf_OneofOptions*(): google_protobuf_OneofOptions
+proc writegoogle_protobuf_OneofOptions*(stream: ProtobufStream, message: google_protobuf_OneofOptions)
+proc readgoogle_protobuf_OneofOptions*(stream: ProtobufStream): google_protobuf_OneofOptions
+proc sizeOfgoogle_protobuf_OneofOptions*(message: google_protobuf_OneofOptions): uint64
+
+proc newgoogle_protobuf_OneofDescriptorProto*(): google_protobuf_OneofDescriptorProto
+proc writegoogle_protobuf_OneofDescriptorProto*(stream: ProtobufStream, message: google_protobuf_OneofDescriptorProto)
+proc readgoogle_protobuf_OneofDescriptorProto*(stream: ProtobufStream): google_protobuf_OneofDescriptorProto
+proc sizeOfgoogle_protobuf_OneofDescriptorProto*(message: google_protobuf_OneofDescriptorProto): uint64
+
+proc newgoogle_protobuf_DescriptorProto_ReservedRange*(): google_protobuf_DescriptorProto_ReservedRange
+proc writegoogle_protobuf_DescriptorProto_ReservedRange*(stream: ProtobufStream, message: google_protobuf_DescriptorProto_ReservedRange)
+proc readgoogle_protobuf_DescriptorProto_ReservedRange*(stream: ProtobufStream): google_protobuf_DescriptorProto_ReservedRange
+proc sizeOfgoogle_protobuf_DescriptorProto_ReservedRange*(message: google_protobuf_DescriptorProto_ReservedRange): uint64
+
+proc newgoogle_protobuf_DescriptorProto*(): google_protobuf_DescriptorProto
+proc writegoogle_protobuf_DescriptorProto*(stream: ProtobufStream, message: google_protobuf_DescriptorProto)
+proc readgoogle_protobuf_DescriptorProto*(stream: ProtobufStream): google_protobuf_DescriptorProto
+proc sizeOfgoogle_protobuf_DescriptorProto*(message: google_protobuf_DescriptorProto): uint64
+
+proc newgoogle_protobuf_FileOptions*(): google_protobuf_FileOptions
+proc writegoogle_protobuf_FileOptions*(stream: ProtobufStream, message: google_protobuf_FileOptions)
+proc readgoogle_protobuf_FileOptions*(stream: ProtobufStream): google_protobuf_FileOptions
+proc sizeOfgoogle_protobuf_FileOptions*(message: google_protobuf_FileOptions): uint64
+
+proc newgoogle_protobuf_ServiceOptions*(): google_protobuf_ServiceOptions
+proc writegoogle_protobuf_ServiceOptions*(stream: ProtobufStream, message: google_protobuf_ServiceOptions)
+proc readgoogle_protobuf_ServiceOptions*(stream: ProtobufStream): google_protobuf_ServiceOptions
+proc sizeOfgoogle_protobuf_ServiceOptions*(message: google_protobuf_ServiceOptions): uint64
+
+proc newgoogle_protobuf_MethodOptions*(): google_protobuf_MethodOptions
+proc writegoogle_protobuf_MethodOptions*(stream: ProtobufStream, message: google_protobuf_MethodOptions)
+proc readgoogle_protobuf_MethodOptions*(stream: ProtobufStream): google_protobuf_MethodOptions
+proc sizeOfgoogle_protobuf_MethodOptions*(message: google_protobuf_MethodOptions): uint64
+
+proc newgoogle_protobuf_MethodDescriptorProto*(): google_protobuf_MethodDescriptorProto
+proc writegoogle_protobuf_MethodDescriptorProto*(stream: ProtobufStream, message: google_protobuf_MethodDescriptorProto)
+proc readgoogle_protobuf_MethodDescriptorProto*(stream: ProtobufStream): google_protobuf_MethodDescriptorProto
+proc sizeOfgoogle_protobuf_MethodDescriptorProto*(message: google_protobuf_MethodDescriptorProto): uint64
+
+proc newgoogle_protobuf_ServiceDescriptorProto*(): google_protobuf_ServiceDescriptorProto
+proc writegoogle_protobuf_ServiceDescriptorProto*(stream: ProtobufStream, message: google_protobuf_ServiceDescriptorProto)
+proc readgoogle_protobuf_ServiceDescriptorProto*(stream: ProtobufStream): google_protobuf_ServiceDescriptorProto
+proc sizeOfgoogle_protobuf_ServiceDescriptorProto*(message: google_protobuf_ServiceDescriptorProto): uint64
+
+proc newgoogle_protobuf_FileDescriptorProto*(): google_protobuf_FileDescriptorProto
+proc writegoogle_protobuf_FileDescriptorProto*(stream: ProtobufStream, message: google_protobuf_FileDescriptorProto)
+proc readgoogle_protobuf_FileDescriptorProto*(stream: ProtobufStream): google_protobuf_FileDescriptorProto
+proc sizeOfgoogle_protobuf_FileDescriptorProto*(message: google_protobuf_FileDescriptorProto): uint64
+
+proc newgoogle_protobuf_FileDescriptorSet*(): google_protobuf_FileDescriptorSet
+proc writegoogle_protobuf_FileDescriptorSet*(stream: ProtobufStream, message: google_protobuf_FileDescriptorSet)
+proc readgoogle_protobuf_FileDescriptorSet*(stream: ProtobufStream): google_protobuf_FileDescriptorSet
+proc sizeOfgoogle_protobuf_FileDescriptorSet*(message: google_protobuf_FileDescriptorSet): uint64
+
+proc newgoogle_protobuf_GeneratedCodeInfo_Annotation*(): google_protobuf_GeneratedCodeInfo_Annotation
+proc writegoogle_protobuf_GeneratedCodeInfo_Annotation*(stream: ProtobufStream, message: google_protobuf_GeneratedCodeInfo_Annotation)
+proc readgoogle_protobuf_GeneratedCodeInfo_Annotation*(stream: ProtobufStream): google_protobuf_GeneratedCodeInfo_Annotation
+proc sizeOfgoogle_protobuf_GeneratedCodeInfo_Annotation*(message: google_protobuf_GeneratedCodeInfo_Annotation): uint64
+
+proc newgoogle_protobuf_GeneratedCodeInfo*(): google_protobuf_GeneratedCodeInfo
+proc writegoogle_protobuf_GeneratedCodeInfo*(stream: ProtobufStream, message: google_protobuf_GeneratedCodeInfo)
+proc readgoogle_protobuf_GeneratedCodeInfo*(stream: ProtobufStream): google_protobuf_GeneratedCodeInfo
+proc sizeOfgoogle_protobuf_GeneratedCodeInfo*(message: google_protobuf_GeneratedCodeInfo): uint64
+
+proc newgoogle_protobuf_UninterpretedOption_NamePart*(): google_protobuf_UninterpretedOption_NamePart =
+ new(result)
+ result.hasField = initIntSet()
+ result.name_part = ""
+ result.is_extension = false
+
+proc clearname_part*(message: google_protobuf_UninterpretedOption_NamePart) =
+ message.name_part = ""
+ excl(message.hasField, [1])
+
+proc hasname_part*(message: google_protobuf_UninterpretedOption_NamePart): bool =
+ result = contains(message.hasField, 1)
+
+proc setname_part*(message: google_protobuf_UninterpretedOption_NamePart, value: string) =
+ message.name_part = value
+ incl(message.hasField, 1)
+
+proc name_part*(message: google_protobuf_UninterpretedOption_NamePart): string {.inline.} =
+ message.name_part
+
+proc `name_part=`*(message: google_protobuf_UninterpretedOption_NamePart, value: string) {.inline.} =
+ setname_part(message, value)
+
+proc clearis_extension*(message: google_protobuf_UninterpretedOption_NamePart) =
+ message.is_extension = false
+ excl(message.hasField, [2])
+
+proc hasis_extension*(message: google_protobuf_UninterpretedOption_NamePart): bool =
+ result = contains(message.hasField, 2)
+
+proc setis_extension*(message: google_protobuf_UninterpretedOption_NamePart, value: bool) =
+ message.is_extension = value
+ incl(message.hasField, 2)
+
+proc is_extension*(message: google_protobuf_UninterpretedOption_NamePart): bool {.inline.} =
+ message.is_extension
+
+proc `is_extension=`*(message: google_protobuf_UninterpretedOption_NamePart, value: bool) {.inline.} =
+ setis_extension(message, value)
+
+proc sizeOfgoogle_protobuf_UninterpretedOption_NamePart*(message: google_protobuf_UninterpretedOption_NamePart): uint64 =
+ if hasname_part(message):
+ result = result + sizeOfTag(1, WireType.LengthDelimited)
+ result = result + sizeOfString(message.name_part)
+ if hasis_extension(message):
+ result = result + sizeOfTag(2, WireType.Varint)
+ result = result + sizeOfBool(message.is_extension)
+
+proc writegoogle_protobuf_UninterpretedOption_NamePart*(stream: ProtobufStream, message: google_protobuf_UninterpretedOption_NamePart) =
+ if hasname_part(message):
+ writeString(stream, message.name_part, 1)
+ if hasis_extension(message):
+ writeBool(stream, message.is_extension, 2)
+
+proc readgoogle_protobuf_UninterpretedOption_NamePart*(stream: ProtobufStream): google_protobuf_UninterpretedOption_NamePart =
+ result = newgoogle_protobuf_UninterpretedOption_NamePart()
+ 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)
+ setname_part(result, readString(stream))
+ of 2:
+ expectWireType(wireType, WireType.Varint)
+ setis_extension(result, readBool(stream))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_UninterpretedOption_NamePart): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_UninterpretedOption_NamePart(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_UninterpretedOption_NamePart*(data: string): google_protobuf_UninterpretedOption_NamePart =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_UninterpretedOption_NamePart(pbs)
+
+
+proc newgoogle_protobuf_UninterpretedOption*(): google_protobuf_UninterpretedOption =
+ new(result)
+ result.hasField = initIntSet()
+ result.name = @[]
+ result.identifier_value = ""
+ result.positive_int_value = 0
+ result.negative_int_value = 0
+ result.double_value = 0
+ result.string_value = bytes("")
+ result.aggregate_value = ""
+
+proc clearname*(message: google_protobuf_UninterpretedOption) =
+ message.name = @[]
+ excl(message.hasField, [2])
+
+proc hasname*(message: google_protobuf_UninterpretedOption): bool =
+ result = contains(message.hasField, 2) or (len(message.name) > 0)
+
+proc setname*(message: google_protobuf_UninterpretedOption, value: seq[google_protobuf_UninterpretedOption_NamePart]) =
+ message.name = value
+ incl(message.hasField, 2)
+
+proc addname*(message: google_protobuf_UninterpretedOption, value: google_protobuf_UninterpretedOption_NamePart) =
+ add(message.name, value)
+ incl(message.hasField, 2)
+
+proc name*(message: google_protobuf_UninterpretedOption): seq[google_protobuf_UninterpretedOption_NamePart] {.inline.} =
+ message.name
+
+proc `name=`*(message: google_protobuf_UninterpretedOption, value: seq[google_protobuf_UninterpretedOption_NamePart]) {.inline.} =
+ setname(message, value)
+
+proc clearidentifier_value*(message: google_protobuf_UninterpretedOption) =
+ message.identifier_value = ""
+ excl(message.hasField, [3])
+
+proc hasidentifier_value*(message: google_protobuf_UninterpretedOption): bool =
+ result = contains(message.hasField, 3)
+
+proc setidentifier_value*(message: google_protobuf_UninterpretedOption, value: string) =
+ message.identifier_value = value
+ incl(message.hasField, 3)
+
+proc identifier_value*(message: google_protobuf_UninterpretedOption): string {.inline.} =
+ message.identifier_value
+
+proc `identifier_value=`*(message: google_protobuf_UninterpretedOption, value: string) {.inline.} =
+ setidentifier_value(message, value)
+
+proc clearpositive_int_value*(message: google_protobuf_UninterpretedOption) =
+ message.positive_int_value = 0
+ excl(message.hasField, [4])
+
+proc haspositive_int_value*(message: google_protobuf_UninterpretedOption): bool =
+ result = contains(message.hasField, 4)
+
+proc setpositive_int_value*(message: google_protobuf_UninterpretedOption, value: uint64) =
+ message.positive_int_value = value
+ incl(message.hasField, 4)
+
+proc positive_int_value*(message: google_protobuf_UninterpretedOption): uint64 {.inline.} =
+ message.positive_int_value
+
+proc `positive_int_value=`*(message: google_protobuf_UninterpretedOption, value: uint64) {.inline.} =
+ setpositive_int_value(message, value)
+
+proc clearnegative_int_value*(message: google_protobuf_UninterpretedOption) =
+ message.negative_int_value = 0
+ excl(message.hasField, [5])
+
+proc hasnegative_int_value*(message: google_protobuf_UninterpretedOption): bool =
+ result = contains(message.hasField, 5)
+
+proc setnegative_int_value*(message: google_protobuf_UninterpretedOption, value: int64) =
+ message.negative_int_value = value
+ incl(message.hasField, 5)
+
+proc negative_int_value*(message: google_protobuf_UninterpretedOption): int64 {.inline.} =
+ message.negative_int_value
+
+proc `negative_int_value=`*(message: google_protobuf_UninterpretedOption, value: int64) {.inline.} =
+ setnegative_int_value(message, value)
+
+proc cleardouble_value*(message: google_protobuf_UninterpretedOption) =
+ message.double_value = 0
+ excl(message.hasField, [6])
+
+proc hasdouble_value*(message: google_protobuf_UninterpretedOption): bool =
+ result = contains(message.hasField, 6)
+
+proc setdouble_value*(message: google_protobuf_UninterpretedOption, value: float64) =
+ message.double_value = value
+ incl(message.hasField, 6)
+
+proc double_value*(message: google_protobuf_UninterpretedOption): float64 {.inline.} =
+ message.double_value
+
+proc `double_value=`*(message: google_protobuf_UninterpretedOption, value: float64) {.inline.} =
+ setdouble_value(message, value)
+
+proc clearstring_value*(message: google_protobuf_UninterpretedOption) =
+ message.string_value = bytes("")
+ excl(message.hasField, [7])
+
+proc hasstring_value*(message: google_protobuf_UninterpretedOption): bool =
+ result = contains(message.hasField, 7)
+
+proc setstring_value*(message: google_protobuf_UninterpretedOption, value: bytes) =
+ message.string_value = value
+ incl(message.hasField, 7)
+
+proc string_value*(message: google_protobuf_UninterpretedOption): bytes {.inline.} =
+ message.string_value
+
+proc `string_value=`*(message: google_protobuf_UninterpretedOption, value: bytes) {.inline.} =
+ setstring_value(message, value)
+
+proc clearaggregate_value*(message: google_protobuf_UninterpretedOption) =
+ message.aggregate_value = ""
+ excl(message.hasField, [8])
+
+proc hasaggregate_value*(message: google_protobuf_UninterpretedOption): bool =
+ result = contains(message.hasField, 8)
+
+proc setaggregate_value*(message: google_protobuf_UninterpretedOption, value: string) =
+ message.aggregate_value = value
+ incl(message.hasField, 8)
+
+proc aggregate_value*(message: google_protobuf_UninterpretedOption): string {.inline.} =
+ message.aggregate_value
+
+proc `aggregate_value=`*(message: google_protobuf_UninterpretedOption, value: string) {.inline.} =
+ setaggregate_value(message, value)
+
+proc sizeOfgoogle_protobuf_UninterpretedOption*(message: google_protobuf_UninterpretedOption): uint64 =
+ for value in message.name:
+ result = result + sizeOfTag(2, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_UninterpretedOption_NamePart(value))
+ if hasidentifier_value(message):
+ result = result + sizeOfTag(3, WireType.LengthDelimited)
+ result = result + sizeOfString(message.identifier_value)
+ if haspositive_int_value(message):
+ result = result + sizeOfTag(4, WireType.Varint)
+ result = result + sizeOfUInt64(message.positive_int_value)
+ if hasnegative_int_value(message):
+ result = result + sizeOfTag(5, WireType.Varint)
+ result = result + sizeOfInt64(message.negative_int_value)
+ if hasdouble_value(message):
+ result = result + sizeOfTag(6, WireType.Fixed64)
+ result = result + sizeOfDouble(message.double_value)
+ if hasstring_value(message):
+ result = result + sizeOfTag(7, WireType.LengthDelimited)
+ result = result + sizeOfBytes(message.string_value)
+ if hasaggregate_value(message):
+ result = result + sizeOfTag(8, WireType.LengthDelimited)
+ result = result + sizeOfString(message.aggregate_value)
+
+proc writegoogle_protobuf_UninterpretedOption*(stream: ProtobufStream, message: google_protobuf_UninterpretedOption) =
+ for value in message.name:
+ writeMessage(stream, value, 2)
+ if hasidentifier_value(message):
+ writeString(stream, message.identifier_value, 3)
+ if haspositive_int_value(message):
+ writeUInt64(stream, message.positive_int_value, 4)
+ if hasnegative_int_value(message):
+ writeInt64(stream, message.negative_int_value, 5)
+ if hasdouble_value(message):
+ writeDouble(stream, message.double_value, 6)
+ if hasstring_value(message):
+ writeBytes(stream, message.string_value, 7)
+ if hasaggregate_value(message):
+ writeString(stream, message.aggregate_value, 8)
+
+proc readgoogle_protobuf_UninterpretedOption*(stream: ProtobufStream): google_protobuf_UninterpretedOption =
+ result = newgoogle_protobuf_UninterpretedOption()
+ while not atEnd(stream):
+ let
+ tag = readTag(stream)
+ wireType = wireType(tag)
+ case fieldNumber(tag)
+ of 0:
+ raise newException(InvalidFieldNumberError, "Invalid field number: 0")
+ of 2:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ addname(result, readgoogle_protobuf_UninterpretedOption_NamePart(pbs))
+ of 3:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setidentifier_value(result, readString(stream))
+ of 4:
+ expectWireType(wireType, WireType.Varint)
+ setpositive_int_value(result, readUInt64(stream))
+ of 5:
+ expectWireType(wireType, WireType.Varint)
+ setnegative_int_value(result, readInt64(stream))
+ of 6:
+ expectWireType(wireType, WireType.Fixed64)
+ setdouble_value(result, readDouble(stream))
+ of 7:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setstring_value(result, readBytes(stream))
+ of 8:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setaggregate_value(result, readString(stream))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_UninterpretedOption): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_UninterpretedOption(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_UninterpretedOption*(data: string): google_protobuf_UninterpretedOption =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_UninterpretedOption(pbs)
+
+
+proc newgoogle_protobuf_EnumValueOptions*(): google_protobuf_EnumValueOptions =
+ new(result)
+ result.hasField = initIntSet()
+ result.deprecated = false
+ result.uninterpreted_option = @[]
+
+proc cleardeprecated*(message: google_protobuf_EnumValueOptions) =
+ message.deprecated = false
+ excl(message.hasField, [1])
+
+proc hasdeprecated*(message: google_protobuf_EnumValueOptions): bool =
+ result = contains(message.hasField, 1)
+
+proc setdeprecated*(message: google_protobuf_EnumValueOptions, value: bool) =
+ message.deprecated = value
+ incl(message.hasField, 1)
+
+proc deprecated*(message: google_protobuf_EnumValueOptions): bool {.inline.} =
+ message.deprecated
+
+proc `deprecated=`*(message: google_protobuf_EnumValueOptions, value: bool) {.inline.} =
+ setdeprecated(message, value)
+
+proc clearuninterpreted_option*(message: google_protobuf_EnumValueOptions) =
+ message.uninterpreted_option = @[]
+ excl(message.hasField, [999])
+
+proc hasuninterpreted_option*(message: google_protobuf_EnumValueOptions): bool =
+ result = contains(message.hasField, 999) or (len(message.uninterpreted_option) > 0)
+
+proc setuninterpreted_option*(message: google_protobuf_EnumValueOptions, value: seq[google_protobuf_UninterpretedOption]) =
+ message.uninterpreted_option = value
+ incl(message.hasField, 999)
+
+proc adduninterpreted_option*(message: google_protobuf_EnumValueOptions, value: google_protobuf_UninterpretedOption) =
+ add(message.uninterpreted_option, value)
+ incl(message.hasField, 999)
+
+proc uninterpreted_option*(message: google_protobuf_EnumValueOptions): seq[google_protobuf_UninterpretedOption] {.inline.} =
+ message.uninterpreted_option
+
+proc `uninterpreted_option=`*(message: google_protobuf_EnumValueOptions, value: seq[google_protobuf_UninterpretedOption]) {.inline.} =
+ setuninterpreted_option(message, value)
+
+proc sizeOfgoogle_protobuf_EnumValueOptions*(message: google_protobuf_EnumValueOptions): uint64 =
+ if hasdeprecated(message):
+ result = result + sizeOfTag(1, WireType.Varint)
+ result = result + sizeOfBool(message.deprecated)
+ for value in message.uninterpreted_option:
+ result = result + sizeOfTag(999, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_UninterpretedOption(value))
+
+proc writegoogle_protobuf_EnumValueOptions*(stream: ProtobufStream, message: google_protobuf_EnumValueOptions) =
+ if hasdeprecated(message):
+ writeBool(stream, message.deprecated, 1)
+ for value in message.uninterpreted_option:
+ writeMessage(stream, value, 999)
+
+proc readgoogle_protobuf_EnumValueOptions*(stream: ProtobufStream): google_protobuf_EnumValueOptions =
+ result = newgoogle_protobuf_EnumValueOptions()
+ 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.Varint)
+ setdeprecated(result, readBool(stream))
+ of 999:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ adduninterpreted_option(result, readgoogle_protobuf_UninterpretedOption(pbs))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_EnumValueOptions): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_EnumValueOptions(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_EnumValueOptions*(data: string): google_protobuf_EnumValueOptions =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_EnumValueOptions(pbs)
+
+
+proc newgoogle_protobuf_EnumValueDescriptorProto*(): google_protobuf_EnumValueDescriptorProto =
+ new(result)
+ result.hasField = initIntSet()
+ result.name = ""
+ result.number = 0
+ result.options = nil
+
+proc clearname*(message: google_protobuf_EnumValueDescriptorProto) =
+ message.name = ""
+ excl(message.hasField, [1])
+
+proc hasname*(message: google_protobuf_EnumValueDescriptorProto): bool =
+ result = contains(message.hasField, 1)
+
+proc setname*(message: google_protobuf_EnumValueDescriptorProto, value: string) =
+ message.name = value
+ incl(message.hasField, 1)
+
+proc name*(message: google_protobuf_EnumValueDescriptorProto): string {.inline.} =
+ message.name
+
+proc `name=`*(message: google_protobuf_EnumValueDescriptorProto, value: string) {.inline.} =
+ setname(message, value)
+
+proc clearnumber*(message: google_protobuf_EnumValueDescriptorProto) =
+ message.number = 0
+ excl(message.hasField, [2])
+
+proc hasnumber*(message: google_protobuf_EnumValueDescriptorProto): bool =
+ result = contains(message.hasField, 2)
+
+proc setnumber*(message: google_protobuf_EnumValueDescriptorProto, value: int32) =
+ message.number = value
+ incl(message.hasField, 2)
+
+proc number*(message: google_protobuf_EnumValueDescriptorProto): int32 {.inline.} =
+ message.number
+
+proc `number=`*(message: google_protobuf_EnumValueDescriptorProto, value: int32) {.inline.} =
+ setnumber(message, value)
+
+proc clearoptions*(message: google_protobuf_EnumValueDescriptorProto) =
+ message.options = nil
+ excl(message.hasField, [3])
+
+proc hasoptions*(message: google_protobuf_EnumValueDescriptorProto): bool =
+ result = contains(message.hasField, 3)
+
+proc setoptions*(message: google_protobuf_EnumValueDescriptorProto, value: google_protobuf_EnumValueOptions) =
+ message.options = value
+ incl(message.hasField, 3)
+
+proc options*(message: google_protobuf_EnumValueDescriptorProto): google_protobuf_EnumValueOptions {.inline.} =
+ message.options
+
+proc `options=`*(message: google_protobuf_EnumValueDescriptorProto, value: google_protobuf_EnumValueOptions) {.inline.} =
+ setoptions(message, value)
+
+proc sizeOfgoogle_protobuf_EnumValueDescriptorProto*(message: google_protobuf_EnumValueDescriptorProto): uint64 =
+ if hasname(message):
+ result = result + sizeOfTag(1, WireType.LengthDelimited)
+ result = result + sizeOfString(message.name)
+ if hasnumber(message):
+ result = result + sizeOfTag(2, WireType.Varint)
+ result = result + sizeOfInt32(message.number)
+ if hasoptions(message):
+ result = result + sizeOfTag(3, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_EnumValueOptions(message.options))
+
+proc writegoogle_protobuf_EnumValueDescriptorProto*(stream: ProtobufStream, message: google_protobuf_EnumValueDescriptorProto) =
+ if hasname(message):
+ writeString(stream, message.name, 1)
+ if hasnumber(message):
+ writeInt32(stream, message.number, 2)
+ if hasoptions(message):
+ writeMessage(stream, message.options, 3)
+
+proc readgoogle_protobuf_EnumValueDescriptorProto*(stream: ProtobufStream): google_protobuf_EnumValueDescriptorProto =
+ result = newgoogle_protobuf_EnumValueDescriptorProto()
+ 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)
+ 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 = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ setoptions(result, readgoogle_protobuf_EnumValueOptions(pbs))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_EnumValueDescriptorProto): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_EnumValueDescriptorProto(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_EnumValueDescriptorProto*(data: string): google_protobuf_EnumValueDescriptorProto =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_EnumValueDescriptorProto(pbs)
+
+
+proc newgoogle_protobuf_EnumDescriptorProto_EnumReservedRange*(): google_protobuf_EnumDescriptorProto_EnumReservedRange =
+ new(result)
+ result.hasField = initIntSet()
+ result.start = 0
+ result.fend = 0
+
+proc clearstart*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange) =
+ message.start = 0
+ excl(message.hasField, [1])
+
+proc hasstart*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange): bool =
+ result = contains(message.hasField, 1)
+
+proc setstart*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange, value: int32) =
+ message.start = value
+ incl(message.hasField, 1)
+
+proc start*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange): int32 {.inline.} =
+ message.start
+
+proc `start=`*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange, value: int32) {.inline.} =
+ setstart(message, value)
+
+proc clearfend*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange) =
+ message.fend = 0
+ excl(message.hasField, [2])
+
+proc hasfend*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange): bool =
+ result = contains(message.hasField, 2)
+
+proc setfend*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange, value: int32) =
+ message.fend = value
+ incl(message.hasField, 2)
+
+proc fend*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange): int32 {.inline.} =
+ message.fend
+
+proc `fend=`*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange, value: int32) {.inline.} =
+ setfend(message, value)
+
+proc sizeOfgoogle_protobuf_EnumDescriptorProto_EnumReservedRange*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange): uint64 =
+ if hasstart(message):
+ result = result + sizeOfTag(1, WireType.Varint)
+ result = result + sizeOfInt32(message.start)
+ if hasfend(message):
+ result = result + sizeOfTag(2, WireType.Varint)
+ result = result + sizeOfInt32(message.fend)
+
+proc writegoogle_protobuf_EnumDescriptorProto_EnumReservedRange*(stream: ProtobufStream, message: google_protobuf_EnumDescriptorProto_EnumReservedRange) =
+ if hasstart(message):
+ writeInt32(stream, message.start, 1)
+ if hasfend(message):
+ writeInt32(stream, message.fend, 2)
+
+proc readgoogle_protobuf_EnumDescriptorProto_EnumReservedRange*(stream: ProtobufStream): google_protobuf_EnumDescriptorProto_EnumReservedRange =
+ result = newgoogle_protobuf_EnumDescriptorProto_EnumReservedRange()
+ 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.Varint)
+ setstart(result, readInt32(stream))
+ of 2:
+ expectWireType(wireType, WireType.Varint)
+ setfend(result, readInt32(stream))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_EnumDescriptorProto_EnumReservedRange(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_EnumDescriptorProto_EnumReservedRange*(data: string): google_protobuf_EnumDescriptorProto_EnumReservedRange =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_EnumDescriptorProto_EnumReservedRange(pbs)
+
+
+proc newgoogle_protobuf_EnumOptions*(): google_protobuf_EnumOptions =
+ new(result)
+ result.hasField = initIntSet()
+ result.allow_alias = false
+ result.deprecated = false
+ result.uninterpreted_option = @[]
+
+proc clearallow_alias*(message: google_protobuf_EnumOptions) =
+ message.allow_alias = false
+ excl(message.hasField, [2])
+
+proc hasallow_alias*(message: google_protobuf_EnumOptions): bool =
+ result = contains(message.hasField, 2)
+
+proc setallow_alias*(message: google_protobuf_EnumOptions, value: bool) =
+ message.allow_alias = value
+ incl(message.hasField, 2)
+
+proc allow_alias*(message: google_protobuf_EnumOptions): bool {.inline.} =
+ message.allow_alias
+
+proc `allow_alias=`*(message: google_protobuf_EnumOptions, value: bool) {.inline.} =
+ setallow_alias(message, value)
+
+proc cleardeprecated*(message: google_protobuf_EnumOptions) =
+ message.deprecated = false
+ excl(message.hasField, [3])
+
+proc hasdeprecated*(message: google_protobuf_EnumOptions): bool =
+ result = contains(message.hasField, 3)
+
+proc setdeprecated*(message: google_protobuf_EnumOptions, value: bool) =
+ message.deprecated = value
+ incl(message.hasField, 3)
+
+proc deprecated*(message: google_protobuf_EnumOptions): bool {.inline.} =
+ message.deprecated
+
+proc `deprecated=`*(message: google_protobuf_EnumOptions, value: bool) {.inline.} =
+ setdeprecated(message, value)
+
+proc clearuninterpreted_option*(message: google_protobuf_EnumOptions) =
+ message.uninterpreted_option = @[]
+ excl(message.hasField, [999])
+
+proc hasuninterpreted_option*(message: google_protobuf_EnumOptions): bool =
+ result = contains(message.hasField, 999) or (len(message.uninterpreted_option) > 0)
+
+proc setuninterpreted_option*(message: google_protobuf_EnumOptions, value: seq[google_protobuf_UninterpretedOption]) =
+ message.uninterpreted_option = value
+ incl(message.hasField, 999)
+
+proc adduninterpreted_option*(message: google_protobuf_EnumOptions, value: google_protobuf_UninterpretedOption) =
+ add(message.uninterpreted_option, value)
+ incl(message.hasField, 999)
+
+proc uninterpreted_option*(message: google_protobuf_EnumOptions): seq[google_protobuf_UninterpretedOption] {.inline.} =
+ message.uninterpreted_option
+
+proc `uninterpreted_option=`*(message: google_protobuf_EnumOptions, value: seq[google_protobuf_UninterpretedOption]) {.inline.} =
+ setuninterpreted_option(message, value)
+
+proc sizeOfgoogle_protobuf_EnumOptions*(message: google_protobuf_EnumOptions): uint64 =
+ if hasallow_alias(message):
+ result = result + sizeOfTag(2, WireType.Varint)
+ result = result + sizeOfBool(message.allow_alias)
+ if hasdeprecated(message):
+ result = result + sizeOfTag(3, WireType.Varint)
+ result = result + sizeOfBool(message.deprecated)
+ for value in message.uninterpreted_option:
+ result = result + sizeOfTag(999, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_UninterpretedOption(value))
+
+proc writegoogle_protobuf_EnumOptions*(stream: ProtobufStream, message: google_protobuf_EnumOptions) =
+ if hasallow_alias(message):
+ writeBool(stream, message.allow_alias, 2)
+ if hasdeprecated(message):
+ writeBool(stream, message.deprecated, 3)
+ for value in message.uninterpreted_option:
+ writeMessage(stream, value, 999)
+
+proc readgoogle_protobuf_EnumOptions*(stream: ProtobufStream): google_protobuf_EnumOptions =
+ result = newgoogle_protobuf_EnumOptions()
+ while not atEnd(stream):
+ let
+ tag = readTag(stream)
+ wireType = wireType(tag)
+ case fieldNumber(tag)
+ of 0:
+ raise newException(InvalidFieldNumberError, "Invalid field number: 0")
+ of 2:
+ expectWireType(wireType, WireType.Varint)
+ setallow_alias(result, readBool(stream))
+ of 3:
+ expectWireType(wireType, WireType.Varint)
+ setdeprecated(result, readBool(stream))
+ of 999:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ adduninterpreted_option(result, readgoogle_protobuf_UninterpretedOption(pbs))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_EnumOptions): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_EnumOptions(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_EnumOptions*(data: string): google_protobuf_EnumOptions =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_EnumOptions(pbs)
+
+
+proc newgoogle_protobuf_EnumDescriptorProto*(): google_protobuf_EnumDescriptorProto =
+ new(result)
+ result.hasField = initIntSet()
+ result.name = ""
+ result.value = @[]
+ result.options = nil
+ result.reserved_range = @[]
+ result.reserved_name = @[]
+
+proc clearname*(message: google_protobuf_EnumDescriptorProto) =
+ message.name = ""
+ excl(message.hasField, [1])
+
+proc hasname*(message: google_protobuf_EnumDescriptorProto): bool =
+ result = contains(message.hasField, 1)
+
+proc setname*(message: google_protobuf_EnumDescriptorProto, value: string) =
+ message.name = value
+ incl(message.hasField, 1)
+
+proc name*(message: google_protobuf_EnumDescriptorProto): string {.inline.} =
+ message.name
+
+proc `name=`*(message: google_protobuf_EnumDescriptorProto, value: string) {.inline.} =
+ setname(message, value)
+
+proc clearvalue*(message: google_protobuf_EnumDescriptorProto) =
+ message.value = @[]
+ excl(message.hasField, [2])
+
+proc hasvalue*(message: google_protobuf_EnumDescriptorProto): bool =
+ result = contains(message.hasField, 2) or (len(message.value) > 0)
+
+proc setvalue*(message: google_protobuf_EnumDescriptorProto, value: seq[google_protobuf_EnumValueDescriptorProto]) =
+ message.value = value
+ incl(message.hasField, 2)
+
+proc addvalue*(message: google_protobuf_EnumDescriptorProto, value: google_protobuf_EnumValueDescriptorProto) =
+ add(message.value, value)
+ incl(message.hasField, 2)
+
+proc value*(message: google_protobuf_EnumDescriptorProto): seq[google_protobuf_EnumValueDescriptorProto] {.inline.} =
+ message.value
+
+proc `value=`*(message: google_protobuf_EnumDescriptorProto, value: seq[google_protobuf_EnumValueDescriptorProto]) {.inline.} =
+ setvalue(message, value)
+
+proc clearoptions*(message: google_protobuf_EnumDescriptorProto) =
+ message.options = nil
+ excl(message.hasField, [3])
+
+proc hasoptions*(message: google_protobuf_EnumDescriptorProto): bool =
+ result = contains(message.hasField, 3)
+
+proc setoptions*(message: google_protobuf_EnumDescriptorProto, value: google_protobuf_EnumOptions) =
+ message.options = value
+ incl(message.hasField, 3)
+
+proc options*(message: google_protobuf_EnumDescriptorProto): google_protobuf_EnumOptions {.inline.} =
+ message.options
+
+proc `options=`*(message: google_protobuf_EnumDescriptorProto, value: google_protobuf_EnumOptions) {.inline.} =
+ setoptions(message, value)
+
+proc clearreserved_range*(message: google_protobuf_EnumDescriptorProto) =
+ message.reserved_range = @[]
+ excl(message.hasField, [4])
+
+proc hasreserved_range*(message: google_protobuf_EnumDescriptorProto): bool =
+ result = contains(message.hasField, 4) or (len(message.reserved_range) > 0)
+
+proc setreserved_range*(message: google_protobuf_EnumDescriptorProto, value: seq[google_protobuf_EnumDescriptorProto_EnumReservedRange]) =
+ message.reserved_range = value
+ incl(message.hasField, 4)
+
+proc addreserved_range*(message: google_protobuf_EnumDescriptorProto, value: google_protobuf_EnumDescriptorProto_EnumReservedRange) =
+ add(message.reserved_range, value)
+ incl(message.hasField, 4)
+
+proc reserved_range*(message: google_protobuf_EnumDescriptorProto): seq[google_protobuf_EnumDescriptorProto_EnumReservedRange] {.inline.} =
+ message.reserved_range
+
+proc `reserved_range=`*(message: google_protobuf_EnumDescriptorProto, value: seq[google_protobuf_EnumDescriptorProto_EnumReservedRange]) {.inline.} =
+ setreserved_range(message, value)
+
+proc clearreserved_name*(message: google_protobuf_EnumDescriptorProto) =
+ message.reserved_name = @[]
+ excl(message.hasField, [5])
+
+proc hasreserved_name*(message: google_protobuf_EnumDescriptorProto): bool =
+ result = contains(message.hasField, 5) or (len(message.reserved_name) > 0)
+
+proc setreserved_name*(message: google_protobuf_EnumDescriptorProto, value: seq[string]) =
+ message.reserved_name = value
+ incl(message.hasField, 5)
+
+proc addreserved_name*(message: google_protobuf_EnumDescriptorProto, value: string) =
+ add(message.reserved_name, value)
+ incl(message.hasField, 5)
+
+proc reserved_name*(message: google_protobuf_EnumDescriptorProto): seq[string] {.inline.} =
+ message.reserved_name
+
+proc `reserved_name=`*(message: google_protobuf_EnumDescriptorProto, value: seq[string]) {.inline.} =
+ setreserved_name(message, value)
+
+proc sizeOfgoogle_protobuf_EnumDescriptorProto*(message: google_protobuf_EnumDescriptorProto): uint64 =
+ if hasname(message):
+ result = result + sizeOfTag(1, WireType.LengthDelimited)
+ result = result + sizeOfString(message.name)
+ for value in message.value:
+ result = result + sizeOfTag(2, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_EnumValueDescriptorProto(value))
+ if hasoptions(message):
+ result = result + sizeOfTag(3, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_EnumOptions(message.options))
+ for value in message.reserved_range:
+ result = result + sizeOfTag(4, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_EnumDescriptorProto_EnumReservedRange(value))
+ for value in message.reserved_name:
+ result = result + sizeOfTag(5, WireType.LengthDelimited)
+ result = result + sizeOfString(value)
+
+proc writegoogle_protobuf_EnumDescriptorProto*(stream: ProtobufStream, message: google_protobuf_EnumDescriptorProto) =
+ if hasname(message):
+ writeString(stream, message.name, 1)
+ for value in message.value:
+ writeMessage(stream, value, 2)
+ if hasoptions(message):
+ writeMessage(stream, message.options, 3)
+ for value in message.reserved_range:
+ writeMessage(stream, value, 4)
+ for value in message.reserved_name:
+ writeString(stream, value, 5)
+
+proc readgoogle_protobuf_EnumDescriptorProto*(stream: ProtobufStream): google_protobuf_EnumDescriptorProto =
+ result = newgoogle_protobuf_EnumDescriptorProto()
+ 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)
+ setname(result, readString(stream))
+ of 2:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ addvalue(result, readgoogle_protobuf_EnumValueDescriptorProto(pbs))
+ of 3:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ setoptions(result, readgoogle_protobuf_EnumOptions(pbs))
+ of 4:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ addreserved_range(result, readgoogle_protobuf_EnumDescriptorProto_EnumReservedRange(pbs))
+ of 5:
+ expectWireType(wireType, WireType.LengthDelimited)
+ addreserved_name(result, readString(stream))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_EnumDescriptorProto): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_EnumDescriptorProto(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_EnumDescriptorProto*(data: string): google_protobuf_EnumDescriptorProto =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_EnumDescriptorProto(pbs)
+
+
+proc newgoogle_protobuf_ExtensionRangeOptions*(): google_protobuf_ExtensionRangeOptions =
+ new(result)
+ result.hasField = initIntSet()
+ result.uninterpreted_option = @[]
+
+proc clearuninterpreted_option*(message: google_protobuf_ExtensionRangeOptions) =
+ message.uninterpreted_option = @[]
+ excl(message.hasField, [999])
+
+proc hasuninterpreted_option*(message: google_protobuf_ExtensionRangeOptions): bool =
+ result = contains(message.hasField, 999) or (len(message.uninterpreted_option) > 0)
+
+proc setuninterpreted_option*(message: google_protobuf_ExtensionRangeOptions, value: seq[google_protobuf_UninterpretedOption]) =
+ message.uninterpreted_option = value
+ incl(message.hasField, 999)
+
+proc adduninterpreted_option*(message: google_protobuf_ExtensionRangeOptions, value: google_protobuf_UninterpretedOption) =
+ add(message.uninterpreted_option, value)
+ incl(message.hasField, 999)
+
+proc uninterpreted_option*(message: google_protobuf_ExtensionRangeOptions): seq[google_protobuf_UninterpretedOption] {.inline.} =
+ message.uninterpreted_option
+
+proc `uninterpreted_option=`*(message: google_protobuf_ExtensionRangeOptions, value: seq[google_protobuf_UninterpretedOption]) {.inline.} =
+ setuninterpreted_option(message, value)
+
+proc sizeOfgoogle_protobuf_ExtensionRangeOptions*(message: google_protobuf_ExtensionRangeOptions): uint64 =
+ for value in message.uninterpreted_option:
+ result = result + sizeOfTag(999, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_UninterpretedOption(value))
+
+proc writegoogle_protobuf_ExtensionRangeOptions*(stream: ProtobufStream, message: google_protobuf_ExtensionRangeOptions) =
+ for value in message.uninterpreted_option:
+ writeMessage(stream, value, 999)
+
+proc readgoogle_protobuf_ExtensionRangeOptions*(stream: ProtobufStream): google_protobuf_ExtensionRangeOptions =
+ result = newgoogle_protobuf_ExtensionRangeOptions()
+ while not atEnd(stream):
+ let
+ tag = readTag(stream)
+ wireType = wireType(tag)
+ case fieldNumber(tag)
+ of 0:
+ raise newException(InvalidFieldNumberError, "Invalid field number: 0")
+ of 999:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ adduninterpreted_option(result, readgoogle_protobuf_UninterpretedOption(pbs))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_ExtensionRangeOptions): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_ExtensionRangeOptions(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_ExtensionRangeOptions*(data: string): google_protobuf_ExtensionRangeOptions =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_ExtensionRangeOptions(pbs)
+
+
+proc newgoogle_protobuf_SourceCodeInfo_Location*(): google_protobuf_SourceCodeInfo_Location =
+ new(result)
+ result.hasField = initIntSet()
+ result.path = @[]
+ result.span = @[]
+ result.leading_comments = ""
+ result.trailing_comments = ""
+ result.leading_detached_comments = @[]
+
+proc clearpath*(message: google_protobuf_SourceCodeInfo_Location) =
+ message.path = @[]
+ excl(message.hasField, [1])
+
+proc haspath*(message: google_protobuf_SourceCodeInfo_Location): bool =
+ result = contains(message.hasField, 1) or (len(message.path) > 0)
+
+proc setpath*(message: google_protobuf_SourceCodeInfo_Location, value: seq[int32]) =
+ message.path = value
+ incl(message.hasField, 1)
+
+proc addpath*(message: google_protobuf_SourceCodeInfo_Location, value: int32) =
+ add(message.path, value)
+ incl(message.hasField, 1)
+
+proc path*(message: google_protobuf_SourceCodeInfo_Location): seq[int32] {.inline.} =
+ message.path
+
+proc `path=`*(message: google_protobuf_SourceCodeInfo_Location, value: seq[int32]) {.inline.} =
+ setpath(message, value)
+
+proc clearspan*(message: google_protobuf_SourceCodeInfo_Location) =
+ message.span = @[]
+ excl(message.hasField, [2])
+
+proc hasspan*(message: google_protobuf_SourceCodeInfo_Location): bool =
+ result = contains(message.hasField, 2) or (len(message.span) > 0)
+
+proc setspan*(message: google_protobuf_SourceCodeInfo_Location, value: seq[int32]) =
+ message.span = value
+ incl(message.hasField, 2)
+
+proc addspan*(message: google_protobuf_SourceCodeInfo_Location, value: int32) =
+ add(message.span, value)
+ incl(message.hasField, 2)
+
+proc span*(message: google_protobuf_SourceCodeInfo_Location): seq[int32] {.inline.} =
+ message.span
+
+proc `span=`*(message: google_protobuf_SourceCodeInfo_Location, value: seq[int32]) {.inline.} =
+ setspan(message, value)
+
+proc clearleading_comments*(message: google_protobuf_SourceCodeInfo_Location) =
+ message.leading_comments = ""
+ excl(message.hasField, [3])
+
+proc hasleading_comments*(message: google_protobuf_SourceCodeInfo_Location): bool =
+ result = contains(message.hasField, 3)
+
+proc setleading_comments*(message: google_protobuf_SourceCodeInfo_Location, value: string) =
+ message.leading_comments = value
+ incl(message.hasField, 3)
+
+proc leading_comments*(message: google_protobuf_SourceCodeInfo_Location): string {.inline.} =
+ message.leading_comments
+
+proc `leading_comments=`*(message: google_protobuf_SourceCodeInfo_Location, value: string) {.inline.} =
+ setleading_comments(message, value)
+
+proc cleartrailing_comments*(message: google_protobuf_SourceCodeInfo_Location) =
+ message.trailing_comments = ""
+ excl(message.hasField, [4])
+
+proc hastrailing_comments*(message: google_protobuf_SourceCodeInfo_Location): bool =
+ result = contains(message.hasField, 4)
+
+proc settrailing_comments*(message: google_protobuf_SourceCodeInfo_Location, value: string) =
+ message.trailing_comments = value
+ incl(message.hasField, 4)
+
+proc trailing_comments*(message: google_protobuf_SourceCodeInfo_Location): string {.inline.} =
+ message.trailing_comments
+
+proc `trailing_comments=`*(message: google_protobuf_SourceCodeInfo_Location, value: string) {.inline.} =
+ settrailing_comments(message, value)
+
+proc clearleading_detached_comments*(message: google_protobuf_SourceCodeInfo_Location) =
+ message.leading_detached_comments = @[]
+ excl(message.hasField, [6])
+
+proc hasleading_detached_comments*(message: google_protobuf_SourceCodeInfo_Location): bool =
+ result = contains(message.hasField, 6) or (len(message.leading_detached_comments) > 0)
+
+proc setleading_detached_comments*(message: google_protobuf_SourceCodeInfo_Location, value: seq[string]) =
+ message.leading_detached_comments = value
+ incl(message.hasField, 6)
+
+proc addleading_detached_comments*(message: google_protobuf_SourceCodeInfo_Location, value: string) =
+ add(message.leading_detached_comments, value)
+ incl(message.hasField, 6)
+
+proc leading_detached_comments*(message: google_protobuf_SourceCodeInfo_Location): seq[string] {.inline.} =
+ message.leading_detached_comments
+
+proc `leading_detached_comments=`*(message: google_protobuf_SourceCodeInfo_Location, value: seq[string]) {.inline.} =
+ setleading_detached_comments(message, value)
+
+proc sizeOfgoogle_protobuf_SourceCodeInfo_Location*(message: google_protobuf_SourceCodeInfo_Location): uint64 =
+ if haspath(message):
+ result = result + sizeOfTag(1, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(packedFieldSize(message.path, FieldType.Int32))
+ if hasspan(message):
+ result = result + sizeOfTag(2, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(packedFieldSize(message.span, FieldType.Int32))
+ if hasleading_comments(message):
+ result = result + sizeOfTag(3, WireType.LengthDelimited)
+ result = result + sizeOfString(message.leading_comments)
+ if hastrailing_comments(message):
+ result = result + sizeOfTag(4, WireType.LengthDelimited)
+ result = result + sizeOfString(message.trailing_comments)
+ for value in message.leading_detached_comments:
+ result = result + sizeOfTag(6, WireType.LengthDelimited)
+ result = result + sizeOfString(value)
+
+proc writegoogle_protobuf_SourceCodeInfo_Location*(stream: ProtobufStream, message: google_protobuf_SourceCodeInfo_Location) =
+ if haspath(message):
+ writeTag(stream, 1, WireType.LengthDelimited)
+ writeVarint(stream, packedFieldSize(message.path, FieldType.Int32))
+ for value in message.path:
+ writeInt32(stream, value)
+ if hasspan(message):
+ writeTag(stream, 2, WireType.LengthDelimited)
+ writeVarint(stream, packedFieldSize(message.span, FieldType.Int32))
+ for value in message.span:
+ writeInt32(stream, value)
+ if hasleading_comments(message):
+ writeString(stream, message.leading_comments, 3)
+ if hastrailing_comments(message):
+ writeString(stream, message.trailing_comments, 4)
+ for value in message.leading_detached_comments:
+ writeString(stream, value, 6)
+
+proc readgoogle_protobuf_SourceCodeInfo_Location*(stream: ProtobufStream): google_protobuf_SourceCodeInfo_Location =
+ result = newgoogle_protobuf_SourceCodeInfo_Location()
+ 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.Varint, WireType.LengthDelimited)
+ if wireType == WireType.LengthDelimited:
+ let
+ size = readVarint(stream)
+ start = uint64(getPosition(stream))
+ var consumed = 0'u64
+ while consumed < size:
+ addpath(result, readInt32(stream))
+ consumed = uint64(getPosition(stream)) - start
+ if consumed != size:
+ raise newException(Exception, "packed field size mismatch")
+ else:
+ addpath(result, readInt32(stream))
+ of 2:
+ expectWireType(wireType, WireType.Varint, WireType.LengthDelimited)
+ if wireType == WireType.LengthDelimited:
+ let
+ size = readVarint(stream)
+ start = uint64(getPosition(stream))
+ var consumed = 0'u64
+ while consumed < size:
+ addspan(result, readInt32(stream))
+ consumed = uint64(getPosition(stream)) - start
+ if consumed != size:
+ raise newException(Exception, "packed field size mismatch")
+ else:
+ addspan(result, readInt32(stream))
+ of 3:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setleading_comments(result, readString(stream))
+ of 4:
+ expectWireType(wireType, WireType.LengthDelimited)
+ settrailing_comments(result, readString(stream))
+ of 6:
+ expectWireType(wireType, WireType.LengthDelimited)
+ addleading_detached_comments(result, readString(stream))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_SourceCodeInfo_Location): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_SourceCodeInfo_Location(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_SourceCodeInfo_Location*(data: string): google_protobuf_SourceCodeInfo_Location =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_SourceCodeInfo_Location(pbs)
+
+
+proc newgoogle_protobuf_SourceCodeInfo*(): google_protobuf_SourceCodeInfo =
+ new(result)
+ result.hasField = initIntSet()
+ result.location = @[]
+
+proc clearlocation*(message: google_protobuf_SourceCodeInfo) =
+ message.location = @[]
+ excl(message.hasField, [1])
+
+proc haslocation*(message: google_protobuf_SourceCodeInfo): bool =
+ result = contains(message.hasField, 1) or (len(message.location) > 0)
+
+proc setlocation*(message: google_protobuf_SourceCodeInfo, value: seq[google_protobuf_SourceCodeInfo_Location]) =
+ message.location = value
+ incl(message.hasField, 1)
+
+proc addlocation*(message: google_protobuf_SourceCodeInfo, value: google_protobuf_SourceCodeInfo_Location) =
+ add(message.location, value)
+ incl(message.hasField, 1)
+
+proc location*(message: google_protobuf_SourceCodeInfo): seq[google_protobuf_SourceCodeInfo_Location] {.inline.} =
+ message.location
+
+proc `location=`*(message: google_protobuf_SourceCodeInfo, value: seq[google_protobuf_SourceCodeInfo_Location]) {.inline.} =
+ setlocation(message, value)
+
+proc sizeOfgoogle_protobuf_SourceCodeInfo*(message: google_protobuf_SourceCodeInfo): uint64 =
+ for value in message.location:
+ result = result + sizeOfTag(1, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_SourceCodeInfo_Location(value))
+
+proc writegoogle_protobuf_SourceCodeInfo*(stream: ProtobufStream, message: google_protobuf_SourceCodeInfo) =
+ for value in message.location:
+ writeMessage(stream, value, 1)
+
+proc readgoogle_protobuf_SourceCodeInfo*(stream: ProtobufStream): google_protobuf_SourceCodeInfo =
+ result = newgoogle_protobuf_SourceCodeInfo()
+ 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)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ addlocation(result, readgoogle_protobuf_SourceCodeInfo_Location(pbs))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_SourceCodeInfo): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_SourceCodeInfo(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_SourceCodeInfo*(data: string): google_protobuf_SourceCodeInfo =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_SourceCodeInfo(pbs)
+
+
+proc newgoogle_protobuf_FieldOptions*(): google_protobuf_FieldOptions =
+ new(result)
+ result.hasField = initIntSet()
+ result.ctype = google_protobuf_FieldOptions_CType(0)
+ result.packed = false
+ result.jstype = google_protobuf_FieldOptions_JSType(0)
+ result.lazy = false
+ result.deprecated = false
+ result.weak = false
+ result.uninterpreted_option = @[]
+
+proc clearctype*(message: google_protobuf_FieldOptions) =
+ message.ctype = google_protobuf_FieldOptions_CType(0)
+ excl(message.hasField, [1])
+
+proc hasctype*(message: google_protobuf_FieldOptions): bool =
+ result = contains(message.hasField, 1)
+
+proc setctype*(message: google_protobuf_FieldOptions, value: google_protobuf_FieldOptions_CType) =
+ message.ctype = value
+ incl(message.hasField, 1)
+
+proc ctype*(message: google_protobuf_FieldOptions): google_protobuf_FieldOptions_CType {.inline.} =
+ message.ctype
+
+proc `ctype=`*(message: google_protobuf_FieldOptions, value: google_protobuf_FieldOptions_CType) {.inline.} =
+ setctype(message, value)
+
+proc clearpacked*(message: google_protobuf_FieldOptions) =
+ message.packed = false
+ excl(message.hasField, [2])
+
+proc haspacked*(message: google_protobuf_FieldOptions): bool =
+ result = contains(message.hasField, 2)
+
+proc setpacked*(message: google_protobuf_FieldOptions, value: bool) =
+ message.packed = value
+ incl(message.hasField, 2)
+
+proc packed*(message: google_protobuf_FieldOptions): bool {.inline.} =
+ message.packed
+
+proc `packed=`*(message: google_protobuf_FieldOptions, value: bool) {.inline.} =
+ setpacked(message, value)
+
+proc clearjstype*(message: google_protobuf_FieldOptions) =
+ message.jstype = google_protobuf_FieldOptions_JSType(0)
+ excl(message.hasField, [6])
+
+proc hasjstype*(message: google_protobuf_FieldOptions): bool =
+ result = contains(message.hasField, 6)
+
+proc setjstype*(message: google_protobuf_FieldOptions, value: google_protobuf_FieldOptions_JSType) =
+ message.jstype = value
+ incl(message.hasField, 6)
+
+proc jstype*(message: google_protobuf_FieldOptions): google_protobuf_FieldOptions_JSType {.inline.} =
+ message.jstype
+
+proc `jstype=`*(message: google_protobuf_FieldOptions, value: google_protobuf_FieldOptions_JSType) {.inline.} =
+ setjstype(message, value)
+
+proc clearlazy*(message: google_protobuf_FieldOptions) =
+ message.lazy = false
+ excl(message.hasField, [5])
+
+proc haslazy*(message: google_protobuf_FieldOptions): bool =
+ result = contains(message.hasField, 5)
+
+proc setlazy*(message: google_protobuf_FieldOptions, value: bool) =
+ message.lazy = value
+ incl(message.hasField, 5)
+
+proc lazy*(message: google_protobuf_FieldOptions): bool {.inline.} =
+ message.lazy
+
+proc `lazy=`*(message: google_protobuf_FieldOptions, value: bool) {.inline.} =
+ setlazy(message, value)
+
+proc cleardeprecated*(message: google_protobuf_FieldOptions) =
+ message.deprecated = false
+ excl(message.hasField, [3])
+
+proc hasdeprecated*(message: google_protobuf_FieldOptions): bool =
+ result = contains(message.hasField, 3)
+
+proc setdeprecated*(message: google_protobuf_FieldOptions, value: bool) =
+ message.deprecated = value
+ incl(message.hasField, 3)
+
+proc deprecated*(message: google_protobuf_FieldOptions): bool {.inline.} =
+ message.deprecated
+
+proc `deprecated=`*(message: google_protobuf_FieldOptions, value: bool) {.inline.} =
+ setdeprecated(message, value)
+
+proc clearweak*(message: google_protobuf_FieldOptions) =
+ message.weak = false
+ excl(message.hasField, [10])
+
+proc hasweak*(message: google_protobuf_FieldOptions): bool =
+ result = contains(message.hasField, 10)
+
+proc setweak*(message: google_protobuf_FieldOptions, value: bool) =
+ message.weak = value
+ incl(message.hasField, 10)
+
+proc weak*(message: google_protobuf_FieldOptions): bool {.inline.} =
+ message.weak
+
+proc `weak=`*(message: google_protobuf_FieldOptions, value: bool) {.inline.} =
+ setweak(message, value)
+
+proc clearuninterpreted_option*(message: google_protobuf_FieldOptions) =
+ message.uninterpreted_option = @[]
+ excl(message.hasField, [999])
+
+proc hasuninterpreted_option*(message: google_protobuf_FieldOptions): bool =
+ result = contains(message.hasField, 999) or (len(message.uninterpreted_option) > 0)
+
+proc setuninterpreted_option*(message: google_protobuf_FieldOptions, value: seq[google_protobuf_UninterpretedOption]) =
+ message.uninterpreted_option = value
+ incl(message.hasField, 999)
+
+proc adduninterpreted_option*(message: google_protobuf_FieldOptions, value: google_protobuf_UninterpretedOption) =
+ add(message.uninterpreted_option, value)
+ incl(message.hasField, 999)
+
+proc uninterpreted_option*(message: google_protobuf_FieldOptions): seq[google_protobuf_UninterpretedOption] {.inline.} =
+ message.uninterpreted_option
+
+proc `uninterpreted_option=`*(message: google_protobuf_FieldOptions, value: seq[google_protobuf_UninterpretedOption]) {.inline.} =
+ setuninterpreted_option(message, value)
+
+proc sizeOfgoogle_protobuf_FieldOptions*(message: google_protobuf_FieldOptions): uint64 =
+ if hasctype(message):
+ result = result + sizeOfTag(1, WireType.Varint)
+ result = result + sizeOfEnum[google_protobuf_FieldOptions_CType](message.ctype)
+ if haspacked(message):
+ result = result + sizeOfTag(2, WireType.Varint)
+ result = result + sizeOfBool(message.packed)
+ if hasjstype(message):
+ result = result + sizeOfTag(6, WireType.Varint)
+ result = result + sizeOfEnum[google_protobuf_FieldOptions_JSType](message.jstype)
+ if haslazy(message):
+ result = result + sizeOfTag(5, WireType.Varint)
+ result = result + sizeOfBool(message.lazy)
+ if hasdeprecated(message):
+ result = result + sizeOfTag(3, WireType.Varint)
+ result = result + sizeOfBool(message.deprecated)
+ if hasweak(message):
+ result = result + sizeOfTag(10, WireType.Varint)
+ result = result + sizeOfBool(message.weak)
+ for value in message.uninterpreted_option:
+ result = result + sizeOfTag(999, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_UninterpretedOption(value))
+
+proc writegoogle_protobuf_FieldOptions*(stream: ProtobufStream, message: google_protobuf_FieldOptions) =
+ if hasctype(message):
+ writeEnum(stream, message.ctype, 1)
+ if haspacked(message):
+ writeBool(stream, message.packed, 2)
+ if hasjstype(message):
+ writeEnum(stream, message.jstype, 6)
+ if haslazy(message):
+ writeBool(stream, message.lazy, 5)
+ if hasdeprecated(message):
+ writeBool(stream, message.deprecated, 3)
+ if hasweak(message):
+ writeBool(stream, message.weak, 10)
+ for value in message.uninterpreted_option:
+ writeMessage(stream, value, 999)
+
+proc readgoogle_protobuf_FieldOptions*(stream: ProtobufStream): google_protobuf_FieldOptions =
+ result = newgoogle_protobuf_FieldOptions()
+ 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.Varint)
+ setctype(result, readEnum[google_protobuf_FieldOptions_CType](stream))
+ of 2:
+ expectWireType(wireType, WireType.Varint)
+ setpacked(result, readBool(stream))
+ of 6:
+ expectWireType(wireType, WireType.Varint)
+ setjstype(result, readEnum[google_protobuf_FieldOptions_JSType](stream))
+ of 5:
+ expectWireType(wireType, WireType.Varint)
+ setlazy(result, readBool(stream))
+ of 3:
+ expectWireType(wireType, WireType.Varint)
+ setdeprecated(result, readBool(stream))
+ of 10:
+ expectWireType(wireType, WireType.Varint)
+ setweak(result, readBool(stream))
+ of 999:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ adduninterpreted_option(result, readgoogle_protobuf_UninterpretedOption(pbs))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_FieldOptions): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_FieldOptions(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_FieldOptions*(data: string): google_protobuf_FieldOptions =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_FieldOptions(pbs)
+
+
+proc newgoogle_protobuf_FieldDescriptorProto*(): google_protobuf_FieldDescriptorProto =
+ new(result)
+ result.hasField = initIntSet()
+ result.name = ""
+ result.number = 0
+ result.label = cast[google_protobuf_FieldDescriptorProto_Label](0)
+ result.ftype = cast[google_protobuf_FieldDescriptorProto_Type](0)
+ result.type_name = ""
+ result.extendee = ""
+ result.default_value = ""
+ result.oneof_index = 0
+ result.json_name = ""
+ result.options = nil
+
+proc clearname*(message: google_protobuf_FieldDescriptorProto) =
+ message.name = ""
+ excl(message.hasField, [1])
+
+proc hasname*(message: google_protobuf_FieldDescriptorProto): bool =
+ result = contains(message.hasField, 1)
+
+proc setname*(message: google_protobuf_FieldDescriptorProto, value: string) =
+ message.name = value
+ incl(message.hasField, 1)
+
+proc name*(message: google_protobuf_FieldDescriptorProto): string {.inline.} =
+ message.name
+
+proc `name=`*(message: google_protobuf_FieldDescriptorProto, value: string) {.inline.} =
+ setname(message, value)
+
+proc clearnumber*(message: google_protobuf_FieldDescriptorProto) =
+ message.number = 0
+ excl(message.hasField, [3])
+
+proc hasnumber*(message: google_protobuf_FieldDescriptorProto): bool =
+ result = contains(message.hasField, 3)
+
+proc setnumber*(message: google_protobuf_FieldDescriptorProto, value: int32) =
+ message.number = value
+ incl(message.hasField, 3)
+
+proc number*(message: google_protobuf_FieldDescriptorProto): int32 {.inline.} =
+ message.number
+
+proc `number=`*(message: google_protobuf_FieldDescriptorProto, value: int32) {.inline.} =
+ setnumber(message, value)
+
+proc clearlabel*(message: google_protobuf_FieldDescriptorProto) =
+ message.label = cast[google_protobuf_FieldDescriptorProto_Label](0)
+ excl(message.hasField, [4])
+
+proc haslabel*(message: google_protobuf_FieldDescriptorProto): bool =
+ result = contains(message.hasField, 4)
+
+proc setlabel*(message: google_protobuf_FieldDescriptorProto, value: google_protobuf_FieldDescriptorProto_Label) =
+ message.label = value
+ incl(message.hasField, 4)
+
+proc label*(message: google_protobuf_FieldDescriptorProto): google_protobuf_FieldDescriptorProto_Label {.inline.} =
+ message.label
+
+proc `label=`*(message: google_protobuf_FieldDescriptorProto, value: google_protobuf_FieldDescriptorProto_Label) {.inline.} =
+ setlabel(message, value)
+
+proc clearftype*(message: google_protobuf_FieldDescriptorProto) =
+ message.ftype = cast[google_protobuf_FieldDescriptorProto_Type](0)
+ excl(message.hasField, [5])
+
+proc hasftype*(message: google_protobuf_FieldDescriptorProto): bool =
+ result = contains(message.hasField, 5)
+
+proc setftype*(message: google_protobuf_FieldDescriptorProto, value: google_protobuf_FieldDescriptorProto_Type) =
+ message.ftype = value
+ incl(message.hasField, 5)
+
+proc ftype*(message: google_protobuf_FieldDescriptorProto): google_protobuf_FieldDescriptorProto_Type {.inline.} =
+ message.ftype
+
+proc `ftype=`*(message: google_protobuf_FieldDescriptorProto, value: google_protobuf_FieldDescriptorProto_Type) {.inline.} =
+ setftype(message, value)
+
+proc cleartype_name*(message: google_protobuf_FieldDescriptorProto) =
+ message.type_name = ""
+ excl(message.hasField, [6])
+
+proc hastype_name*(message: google_protobuf_FieldDescriptorProto): bool =
+ result = contains(message.hasField, 6)
+
+proc settype_name*(message: google_protobuf_FieldDescriptorProto, value: string) =
+ message.type_name = value
+ incl(message.hasField, 6)
+
+proc type_name*(message: google_protobuf_FieldDescriptorProto): string {.inline.} =
+ message.type_name
+
+proc `type_name=`*(message: google_protobuf_FieldDescriptorProto, value: string) {.inline.} =
+ settype_name(message, value)
+
+proc clearextendee*(message: google_protobuf_FieldDescriptorProto) =
+ message.extendee = ""
+ excl(message.hasField, [2])
+
+proc hasextendee*(message: google_protobuf_FieldDescriptorProto): bool =
+ result = contains(message.hasField, 2)
+
+proc setextendee*(message: google_protobuf_FieldDescriptorProto, value: string) =
+ message.extendee = value
+ incl(message.hasField, 2)
+
+proc extendee*(message: google_protobuf_FieldDescriptorProto): string {.inline.} =
+ message.extendee
+
+proc `extendee=`*(message: google_protobuf_FieldDescriptorProto, value: string) {.inline.} =
+ setextendee(message, value)
+
+proc cleardefault_value*(message: google_protobuf_FieldDescriptorProto) =
+ message.default_value = ""
+ excl(message.hasField, [7])
+
+proc hasdefault_value*(message: google_protobuf_FieldDescriptorProto): bool =
+ result = contains(message.hasField, 7)
+
+proc setdefault_value*(message: google_protobuf_FieldDescriptorProto, value: string) =
+ message.default_value = value
+ incl(message.hasField, 7)
+
+proc default_value*(message: google_protobuf_FieldDescriptorProto): string {.inline.} =
+ message.default_value
+
+proc `default_value=`*(message: google_protobuf_FieldDescriptorProto, value: string) {.inline.} =
+ setdefault_value(message, value)
+
+proc clearoneof_index*(message: google_protobuf_FieldDescriptorProto) =
+ message.oneof_index = 0
+ excl(message.hasField, [9])
+
+proc hasoneof_index*(message: google_protobuf_FieldDescriptorProto): bool =
+ result = contains(message.hasField, 9)
+
+proc setoneof_index*(message: google_protobuf_FieldDescriptorProto, value: int32) =
+ message.oneof_index = value
+ incl(message.hasField, 9)
+
+proc oneof_index*(message: google_protobuf_FieldDescriptorProto): int32 {.inline.} =
+ message.oneof_index
+
+proc `oneof_index=`*(message: google_protobuf_FieldDescriptorProto, value: int32) {.inline.} =
+ setoneof_index(message, value)
+
+proc clearjson_name*(message: google_protobuf_FieldDescriptorProto) =
+ message.json_name = ""
+ excl(message.hasField, [10])
+
+proc hasjson_name*(message: google_protobuf_FieldDescriptorProto): bool =
+ result = contains(message.hasField, 10)
+
+proc setjson_name*(message: google_protobuf_FieldDescriptorProto, value: string) =
+ message.json_name = value
+ incl(message.hasField, 10)
+
+proc json_name*(message: google_protobuf_FieldDescriptorProto): string {.inline.} =
+ message.json_name
+
+proc `json_name=`*(message: google_protobuf_FieldDescriptorProto, value: string) {.inline.} =
+ setjson_name(message, value)
+
+proc clearoptions*(message: google_protobuf_FieldDescriptorProto) =
+ message.options = nil
+ excl(message.hasField, [8])
+
+proc hasoptions*(message: google_protobuf_FieldDescriptorProto): bool =
+ result = contains(message.hasField, 8)
+
+proc setoptions*(message: google_protobuf_FieldDescriptorProto, value: google_protobuf_FieldOptions) =
+ message.options = value
+ incl(message.hasField, 8)
+
+proc options*(message: google_protobuf_FieldDescriptorProto): google_protobuf_FieldOptions {.inline.} =
+ message.options
+
+proc `options=`*(message: google_protobuf_FieldDescriptorProto, value: google_protobuf_FieldOptions) {.inline.} =
+ setoptions(message, value)
+
+proc sizeOfgoogle_protobuf_FieldDescriptorProto*(message: google_protobuf_FieldDescriptorProto): uint64 =
+ if hasname(message):
+ result = result + sizeOfTag(1, WireType.LengthDelimited)
+ result = result + sizeOfString(message.name)
+ if hasnumber(message):
+ result = result + sizeOfTag(3, WireType.Varint)
+ result = result + sizeOfInt32(message.number)
+ if haslabel(message):
+ result = result + sizeOfTag(4, WireType.Varint)
+ result = result + sizeOfEnum[google_protobuf_FieldDescriptorProto_Label](message.label)
+ if hasftype(message):
+ result = result + sizeOfTag(5, WireType.Varint)
+ result = result + sizeOfEnum[google_protobuf_FieldDescriptorProto_Type](message.ftype)
+ if hastype_name(message):
+ result = result + sizeOfTag(6, WireType.LengthDelimited)
+ result = result + sizeOfString(message.type_name)
+ if hasextendee(message):
+ result = result + sizeOfTag(2, WireType.LengthDelimited)
+ result = result + sizeOfString(message.extendee)
+ if hasdefault_value(message):
+ result = result + sizeOfTag(7, WireType.LengthDelimited)
+ result = result + sizeOfString(message.default_value)
+ if hasoneof_index(message):
+ result = result + sizeOfTag(9, WireType.Varint)
+ result = result + sizeOfInt32(message.oneof_index)
+ if hasjson_name(message):
+ result = result + sizeOfTag(10, WireType.LengthDelimited)
+ result = result + sizeOfString(message.json_name)
+ if hasoptions(message):
+ result = result + sizeOfTag(8, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_FieldOptions(message.options))
+
+proc writegoogle_protobuf_FieldDescriptorProto*(stream: ProtobufStream, message: google_protobuf_FieldDescriptorProto) =
+ if hasname(message):
+ writeString(stream, message.name, 1)
+ if hasnumber(message):
+ writeInt32(stream, message.number, 3)
+ if haslabel(message):
+ writeEnum(stream, message.label, 4)
+ if hasftype(message):
+ writeEnum(stream, message.ftype, 5)
+ if hastype_name(message):
+ writeString(stream, message.type_name, 6)
+ if hasextendee(message):
+ writeString(stream, message.extendee, 2)
+ if hasdefault_value(message):
+ writeString(stream, message.default_value, 7)
+ if hasoneof_index(message):
+ writeInt32(stream, message.oneof_index, 9)
+ if hasjson_name(message):
+ writeString(stream, message.json_name, 10)
+ if hasoptions(message):
+ writeMessage(stream, message.options, 8)
+
+proc readgoogle_protobuf_FieldDescriptorProto*(stream: ProtobufStream): google_protobuf_FieldDescriptorProto =
+ result = newgoogle_protobuf_FieldDescriptorProto()
+ 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)
+ setname(result, readString(stream))
+ of 3:
+ expectWireType(wireType, WireType.Varint)
+ setnumber(result, readInt32(stream))
+ of 4:
+ expectWireType(wireType, WireType.Varint)
+ setlabel(result, readEnum[google_protobuf_FieldDescriptorProto_Label](stream))
+ of 5:
+ expectWireType(wireType, WireType.Varint)
+ setftype(result, readEnum[google_protobuf_FieldDescriptorProto_Type](stream))
+ of 6:
+ expectWireType(wireType, WireType.LengthDelimited)
+ settype_name(result, readString(stream))
+ of 2:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setextendee(result, readString(stream))
+ of 7:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setdefault_value(result, readString(stream))
+ of 9:
+ expectWireType(wireType, WireType.Varint)
+ setoneof_index(result, readInt32(stream))
+ of 10:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setjson_name(result, readString(stream))
+ of 8:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ setoptions(result, readgoogle_protobuf_FieldOptions(pbs))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_FieldDescriptorProto): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_FieldDescriptorProto(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_FieldDescriptorProto*(data: string): google_protobuf_FieldDescriptorProto =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_FieldDescriptorProto(pbs)
+
+
+proc newgoogle_protobuf_DescriptorProto_ExtensionRange*(): google_protobuf_DescriptorProto_ExtensionRange =
+ new(result)
+ result.hasField = initIntSet()
+ result.start = 0
+ result.fend = 0
+ result.options = nil
+
+proc clearstart*(message: google_protobuf_DescriptorProto_ExtensionRange) =
+ message.start = 0
+ excl(message.hasField, [1])
+
+proc hasstart*(message: google_protobuf_DescriptorProto_ExtensionRange): bool =
+ result = contains(message.hasField, 1)
+
+proc setstart*(message: google_protobuf_DescriptorProto_ExtensionRange, value: int32) =
+ message.start = value
+ incl(message.hasField, 1)
+
+proc start*(message: google_protobuf_DescriptorProto_ExtensionRange): int32 {.inline.} =
+ message.start
+
+proc `start=`*(message: google_protobuf_DescriptorProto_ExtensionRange, value: int32) {.inline.} =
+ setstart(message, value)
+
+proc clearfend*(message: google_protobuf_DescriptorProto_ExtensionRange) =
+ message.fend = 0
+ excl(message.hasField, [2])
+
+proc hasfend*(message: google_protobuf_DescriptorProto_ExtensionRange): bool =
+ result = contains(message.hasField, 2)
+
+proc setfend*(message: google_protobuf_DescriptorProto_ExtensionRange, value: int32) =
+ message.fend = value
+ incl(message.hasField, 2)
+
+proc fend*(message: google_protobuf_DescriptorProto_ExtensionRange): int32 {.inline.} =
+ message.fend
+
+proc `fend=`*(message: google_protobuf_DescriptorProto_ExtensionRange, value: int32) {.inline.} =
+ setfend(message, value)
+
+proc clearoptions*(message: google_protobuf_DescriptorProto_ExtensionRange) =
+ message.options = nil
+ excl(message.hasField, [3])
+
+proc hasoptions*(message: google_protobuf_DescriptorProto_ExtensionRange): bool =
+ result = contains(message.hasField, 3)
+
+proc setoptions*(message: google_protobuf_DescriptorProto_ExtensionRange, value: google_protobuf_ExtensionRangeOptions) =
+ message.options = value
+ incl(message.hasField, 3)
+
+proc options*(message: google_protobuf_DescriptorProto_ExtensionRange): google_protobuf_ExtensionRangeOptions {.inline.} =
+ message.options
+
+proc `options=`*(message: google_protobuf_DescriptorProto_ExtensionRange, value: google_protobuf_ExtensionRangeOptions) {.inline.} =
+ setoptions(message, value)
+
+proc sizeOfgoogle_protobuf_DescriptorProto_ExtensionRange*(message: google_protobuf_DescriptorProto_ExtensionRange): uint64 =
+ if hasstart(message):
+ result = result + sizeOfTag(1, WireType.Varint)
+ result = result + sizeOfInt32(message.start)
+ if hasfend(message):
+ result = result + sizeOfTag(2, WireType.Varint)
+ result = result + sizeOfInt32(message.fend)
+ if hasoptions(message):
+ result = result + sizeOfTag(3, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_ExtensionRangeOptions(message.options))
+
+proc writegoogle_protobuf_DescriptorProto_ExtensionRange*(stream: ProtobufStream, message: google_protobuf_DescriptorProto_ExtensionRange) =
+ if hasstart(message):
+ writeInt32(stream, message.start, 1)
+ if hasfend(message):
+ writeInt32(stream, message.fend, 2)
+ if hasoptions(message):
+ writeMessage(stream, message.options, 3)
+
+proc readgoogle_protobuf_DescriptorProto_ExtensionRange*(stream: ProtobufStream): google_protobuf_DescriptorProto_ExtensionRange =
+ result = newgoogle_protobuf_DescriptorProto_ExtensionRange()
+ 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.Varint)
+ setstart(result, readInt32(stream))
+ of 2:
+ expectWireType(wireType, WireType.Varint)
+ setfend(result, readInt32(stream))
+ of 3:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ setoptions(result, readgoogle_protobuf_ExtensionRangeOptions(pbs))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_DescriptorProto_ExtensionRange): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_DescriptorProto_ExtensionRange(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_DescriptorProto_ExtensionRange*(data: string): google_protobuf_DescriptorProto_ExtensionRange =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_DescriptorProto_ExtensionRange(pbs)
+
+
+proc newgoogle_protobuf_MessageOptions*(): google_protobuf_MessageOptions =
+ new(result)
+ result.hasField = initIntSet()
+ result.message_set_wire_format = false
+ result.no_standard_descriptor_accessor = false
+ result.deprecated = false
+ result.map_entry = false
+ result.uninterpreted_option = @[]
+
+proc clearmessage_set_wire_format*(message: google_protobuf_MessageOptions) =
+ message.message_set_wire_format = false
+ excl(message.hasField, [1])
+
+proc hasmessage_set_wire_format*(message: google_protobuf_MessageOptions): bool =
+ result = contains(message.hasField, 1)
+
+proc setmessage_set_wire_format*(message: google_protobuf_MessageOptions, value: bool) =
+ message.message_set_wire_format = value
+ incl(message.hasField, 1)
+
+proc message_set_wire_format*(message: google_protobuf_MessageOptions): bool {.inline.} =
+ message.message_set_wire_format
+
+proc `message_set_wire_format=`*(message: google_protobuf_MessageOptions, value: bool) {.inline.} =
+ setmessage_set_wire_format(message, value)
+
+proc clearno_standard_descriptor_accessor*(message: google_protobuf_MessageOptions) =
+ message.no_standard_descriptor_accessor = false
+ excl(message.hasField, [2])
+
+proc hasno_standard_descriptor_accessor*(message: google_protobuf_MessageOptions): bool =
+ result = contains(message.hasField, 2)
+
+proc setno_standard_descriptor_accessor*(message: google_protobuf_MessageOptions, value: bool) =
+ message.no_standard_descriptor_accessor = value
+ incl(message.hasField, 2)
+
+proc no_standard_descriptor_accessor*(message: google_protobuf_MessageOptions): bool {.inline.} =
+ message.no_standard_descriptor_accessor
+
+proc `no_standard_descriptor_accessor=`*(message: google_protobuf_MessageOptions, value: bool) {.inline.} =
+ setno_standard_descriptor_accessor(message, value)
+
+proc cleardeprecated*(message: google_protobuf_MessageOptions) =
+ message.deprecated = false
+ excl(message.hasField, [3])
+
+proc hasdeprecated*(message: google_protobuf_MessageOptions): bool =
+ result = contains(message.hasField, 3)
+
+proc setdeprecated*(message: google_protobuf_MessageOptions, value: bool) =
+ message.deprecated = value
+ incl(message.hasField, 3)
+
+proc deprecated*(message: google_protobuf_MessageOptions): bool {.inline.} =
+ message.deprecated
+
+proc `deprecated=`*(message: google_protobuf_MessageOptions, value: bool) {.inline.} =
+ setdeprecated(message, value)
+
+proc clearmap_entry*(message: google_protobuf_MessageOptions) =
+ message.map_entry = false
+ excl(message.hasField, [7])
+
+proc hasmap_entry*(message: google_protobuf_MessageOptions): bool =
+ result = contains(message.hasField, 7)
+
+proc setmap_entry*(message: google_protobuf_MessageOptions, value: bool) =
+ message.map_entry = value
+ incl(message.hasField, 7)
+
+proc map_entry*(message: google_protobuf_MessageOptions): bool {.inline.} =
+ message.map_entry
+
+proc `map_entry=`*(message: google_protobuf_MessageOptions, value: bool) {.inline.} =
+ setmap_entry(message, value)
+
+proc clearuninterpreted_option*(message: google_protobuf_MessageOptions) =
+ message.uninterpreted_option = @[]
+ excl(message.hasField, [999])
+
+proc hasuninterpreted_option*(message: google_protobuf_MessageOptions): bool =
+ result = contains(message.hasField, 999) or (len(message.uninterpreted_option) > 0)
+
+proc setuninterpreted_option*(message: google_protobuf_MessageOptions, value: seq[google_protobuf_UninterpretedOption]) =
+ message.uninterpreted_option = value
+ incl(message.hasField, 999)
+
+proc adduninterpreted_option*(message: google_protobuf_MessageOptions, value: google_protobuf_UninterpretedOption) =
+ add(message.uninterpreted_option, value)
+ incl(message.hasField, 999)
+
+proc uninterpreted_option*(message: google_protobuf_MessageOptions): seq[google_protobuf_UninterpretedOption] {.inline.} =
+ message.uninterpreted_option
+
+proc `uninterpreted_option=`*(message: google_protobuf_MessageOptions, value: seq[google_protobuf_UninterpretedOption]) {.inline.} =
+ setuninterpreted_option(message, value)
+
+proc sizeOfgoogle_protobuf_MessageOptions*(message: google_protobuf_MessageOptions): uint64 =
+ if hasmessage_set_wire_format(message):
+ result = result + sizeOfTag(1, WireType.Varint)
+ result = result + sizeOfBool(message.message_set_wire_format)
+ if hasno_standard_descriptor_accessor(message):
+ result = result + sizeOfTag(2, WireType.Varint)
+ result = result + sizeOfBool(message.no_standard_descriptor_accessor)
+ if hasdeprecated(message):
+ result = result + sizeOfTag(3, WireType.Varint)
+ result = result + sizeOfBool(message.deprecated)
+ if hasmap_entry(message):
+ result = result + sizeOfTag(7, WireType.Varint)
+ result = result + sizeOfBool(message.map_entry)
+ for value in message.uninterpreted_option:
+ result = result + sizeOfTag(999, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_UninterpretedOption(value))
+
+proc writegoogle_protobuf_MessageOptions*(stream: ProtobufStream, message: google_protobuf_MessageOptions) =
+ if hasmessage_set_wire_format(message):
+ writeBool(stream, message.message_set_wire_format, 1)
+ if hasno_standard_descriptor_accessor(message):
+ writeBool(stream, message.no_standard_descriptor_accessor, 2)
+ if hasdeprecated(message):
+ writeBool(stream, message.deprecated, 3)
+ if hasmap_entry(message):
+ writeBool(stream, message.map_entry, 7)
+ for value in message.uninterpreted_option:
+ writeMessage(stream, value, 999)
+
+proc readgoogle_protobuf_MessageOptions*(stream: ProtobufStream): google_protobuf_MessageOptions =
+ result = newgoogle_protobuf_MessageOptions()
+ 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.Varint)
+ setmessage_set_wire_format(result, readBool(stream))
+ of 2:
+ expectWireType(wireType, WireType.Varint)
+ setno_standard_descriptor_accessor(result, readBool(stream))
+ of 3:
+ expectWireType(wireType, WireType.Varint)
+ setdeprecated(result, readBool(stream))
+ of 7:
+ expectWireType(wireType, WireType.Varint)
+ setmap_entry(result, readBool(stream))
+ of 999:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ adduninterpreted_option(result, readgoogle_protobuf_UninterpretedOption(pbs))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_MessageOptions): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_MessageOptions(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_MessageOptions*(data: string): google_protobuf_MessageOptions =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_MessageOptions(pbs)
+
+
+proc newgoogle_protobuf_OneofOptions*(): google_protobuf_OneofOptions =
+ new(result)
+ result.hasField = initIntSet()
+ result.uninterpreted_option = @[]
+
+proc clearuninterpreted_option*(message: google_protobuf_OneofOptions) =
+ message.uninterpreted_option = @[]
+ excl(message.hasField, [999])
+
+proc hasuninterpreted_option*(message: google_protobuf_OneofOptions): bool =
+ result = contains(message.hasField, 999) or (len(message.uninterpreted_option) > 0)
+
+proc setuninterpreted_option*(message: google_protobuf_OneofOptions, value: seq[google_protobuf_UninterpretedOption]) =
+ message.uninterpreted_option = value
+ incl(message.hasField, 999)
+
+proc adduninterpreted_option*(message: google_protobuf_OneofOptions, value: google_protobuf_UninterpretedOption) =
+ add(message.uninterpreted_option, value)
+ incl(message.hasField, 999)
+
+proc uninterpreted_option*(message: google_protobuf_OneofOptions): seq[google_protobuf_UninterpretedOption] {.inline.} =
+ message.uninterpreted_option
+
+proc `uninterpreted_option=`*(message: google_protobuf_OneofOptions, value: seq[google_protobuf_UninterpretedOption]) {.inline.} =
+ setuninterpreted_option(message, value)
+
+proc sizeOfgoogle_protobuf_OneofOptions*(message: google_protobuf_OneofOptions): uint64 =
+ for value in message.uninterpreted_option:
+ result = result + sizeOfTag(999, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_UninterpretedOption(value))
+
+proc writegoogle_protobuf_OneofOptions*(stream: ProtobufStream, message: google_protobuf_OneofOptions) =
+ for value in message.uninterpreted_option:
+ writeMessage(stream, value, 999)
+
+proc readgoogle_protobuf_OneofOptions*(stream: ProtobufStream): google_protobuf_OneofOptions =
+ result = newgoogle_protobuf_OneofOptions()
+ while not atEnd(stream):
+ let
+ tag = readTag(stream)
+ wireType = wireType(tag)
+ case fieldNumber(tag)
+ of 0:
+ raise newException(InvalidFieldNumberError, "Invalid field number: 0")
+ of 999:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ adduninterpreted_option(result, readgoogle_protobuf_UninterpretedOption(pbs))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_OneofOptions): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_OneofOptions(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_OneofOptions*(data: string): google_protobuf_OneofOptions =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_OneofOptions(pbs)
+
+
+proc newgoogle_protobuf_OneofDescriptorProto*(): google_protobuf_OneofDescriptorProto =
+ new(result)
+ result.hasField = initIntSet()
+ result.name = ""
+ result.options = nil
+
+proc clearname*(message: google_protobuf_OneofDescriptorProto) =
+ message.name = ""
+ excl(message.hasField, [1])
+
+proc hasname*(message: google_protobuf_OneofDescriptorProto): bool =
+ result = contains(message.hasField, 1)
+
+proc setname*(message: google_protobuf_OneofDescriptorProto, value: string) =
+ message.name = value
+ incl(message.hasField, 1)
+
+proc name*(message: google_protobuf_OneofDescriptorProto): string {.inline.} =
+ message.name
+
+proc `name=`*(message: google_protobuf_OneofDescriptorProto, value: string) {.inline.} =
+ setname(message, value)
+
+proc clearoptions*(message: google_protobuf_OneofDescriptorProto) =
+ message.options = nil
+ excl(message.hasField, [2])
+
+proc hasoptions*(message: google_protobuf_OneofDescriptorProto): bool =
+ result = contains(message.hasField, 2)
+
+proc setoptions*(message: google_protobuf_OneofDescriptorProto, value: google_protobuf_OneofOptions) =
+ message.options = value
+ incl(message.hasField, 2)
+
+proc options*(message: google_protobuf_OneofDescriptorProto): google_protobuf_OneofOptions {.inline.} =
+ message.options
+
+proc `options=`*(message: google_protobuf_OneofDescriptorProto, value: google_protobuf_OneofOptions) {.inline.} =
+ setoptions(message, value)
+
+proc sizeOfgoogle_protobuf_OneofDescriptorProto*(message: google_protobuf_OneofDescriptorProto): uint64 =
+ if hasname(message):
+ result = result + sizeOfTag(1, WireType.LengthDelimited)
+ result = result + sizeOfString(message.name)
+ if hasoptions(message):
+ result = result + sizeOfTag(2, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_OneofOptions(message.options))
+
+proc writegoogle_protobuf_OneofDescriptorProto*(stream: ProtobufStream, message: google_protobuf_OneofDescriptorProto) =
+ if hasname(message):
+ writeString(stream, message.name, 1)
+ if hasoptions(message):
+ writeMessage(stream, message.options, 2)
+
+proc readgoogle_protobuf_OneofDescriptorProto*(stream: ProtobufStream): google_protobuf_OneofDescriptorProto =
+ result = newgoogle_protobuf_OneofDescriptorProto()
+ 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)
+ setname(result, readString(stream))
+ of 2:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ setoptions(result, readgoogle_protobuf_OneofOptions(pbs))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_OneofDescriptorProto): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_OneofDescriptorProto(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_OneofDescriptorProto*(data: string): google_protobuf_OneofDescriptorProto =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_OneofDescriptorProto(pbs)
+
+
+proc newgoogle_protobuf_DescriptorProto_ReservedRange*(): google_protobuf_DescriptorProto_ReservedRange =
+ new(result)
+ result.hasField = initIntSet()
+ result.start = 0
+ result.fend = 0
+
+proc clearstart*(message: google_protobuf_DescriptorProto_ReservedRange) =
+ message.start = 0
+ excl(message.hasField, [1])
+
+proc hasstart*(message: google_protobuf_DescriptorProto_ReservedRange): bool =
+ result = contains(message.hasField, 1)
+
+proc setstart*(message: google_protobuf_DescriptorProto_ReservedRange, value: int32) =
+ message.start = value
+ incl(message.hasField, 1)
+
+proc start*(message: google_protobuf_DescriptorProto_ReservedRange): int32 {.inline.} =
+ message.start
+
+proc `start=`*(message: google_protobuf_DescriptorProto_ReservedRange, value: int32) {.inline.} =
+ setstart(message, value)
+
+proc clearfend*(message: google_protobuf_DescriptorProto_ReservedRange) =
+ message.fend = 0
+ excl(message.hasField, [2])
+
+proc hasfend*(message: google_protobuf_DescriptorProto_ReservedRange): bool =
+ result = contains(message.hasField, 2)
+
+proc setfend*(message: google_protobuf_DescriptorProto_ReservedRange, value: int32) =
+ message.fend = value
+ incl(message.hasField, 2)
+
+proc fend*(message: google_protobuf_DescriptorProto_ReservedRange): int32 {.inline.} =
+ message.fend
+
+proc `fend=`*(message: google_protobuf_DescriptorProto_ReservedRange, value: int32) {.inline.} =
+ setfend(message, value)
+
+proc sizeOfgoogle_protobuf_DescriptorProto_ReservedRange*(message: google_protobuf_DescriptorProto_ReservedRange): uint64 =
+ if hasstart(message):
+ result = result + sizeOfTag(1, WireType.Varint)
+ result = result + sizeOfInt32(message.start)
+ if hasfend(message):
+ result = result + sizeOfTag(2, WireType.Varint)
+ result = result + sizeOfInt32(message.fend)
+
+proc writegoogle_protobuf_DescriptorProto_ReservedRange*(stream: ProtobufStream, message: google_protobuf_DescriptorProto_ReservedRange) =
+ if hasstart(message):
+ writeInt32(stream, message.start, 1)
+ if hasfend(message):
+ writeInt32(stream, message.fend, 2)
+
+proc readgoogle_protobuf_DescriptorProto_ReservedRange*(stream: ProtobufStream): google_protobuf_DescriptorProto_ReservedRange =
+ result = newgoogle_protobuf_DescriptorProto_ReservedRange()
+ 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.Varint)
+ setstart(result, readInt32(stream))
+ of 2:
+ expectWireType(wireType, WireType.Varint)
+ setfend(result, readInt32(stream))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_DescriptorProto_ReservedRange): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_DescriptorProto_ReservedRange(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_DescriptorProto_ReservedRange*(data: string): google_protobuf_DescriptorProto_ReservedRange =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_DescriptorProto_ReservedRange(pbs)
+
+
+proc newgoogle_protobuf_DescriptorProto*(): google_protobuf_DescriptorProto =
+ new(result)
+ result.hasField = initIntSet()
+ result.name = ""
+ result.field = @[]
+ result.extension = @[]
+ result.nested_type = @[]
+ result.enum_type = @[]
+ result.extension_range = @[]
+ result.oneof_decl = @[]
+ result.options = nil
+ result.reserved_range = @[]
+ result.reserved_name = @[]
+
+proc clearname*(message: google_protobuf_DescriptorProto) =
+ message.name = ""
+ excl(message.hasField, [1])
+
+proc hasname*(message: google_protobuf_DescriptorProto): bool =
+ result = contains(message.hasField, 1)
+
+proc setname*(message: google_protobuf_DescriptorProto, value: string) =
+ message.name = value
+ incl(message.hasField, 1)
+
+proc name*(message: google_protobuf_DescriptorProto): string {.inline.} =
+ message.name
+
+proc `name=`*(message: google_protobuf_DescriptorProto, value: string) {.inline.} =
+ setname(message, value)
+
+proc clearfield*(message: google_protobuf_DescriptorProto) =
+ message.field = @[]
+ excl(message.hasField, [2])
+
+proc hasfield*(message: google_protobuf_DescriptorProto): bool =
+ result = contains(message.hasField, 2) or (len(message.field) > 0)
+
+proc setfield*(message: google_protobuf_DescriptorProto, value: seq[google_protobuf_FieldDescriptorProto]) =
+ message.field = value
+ incl(message.hasField, 2)
+
+proc addfield*(message: google_protobuf_DescriptorProto, value: google_protobuf_FieldDescriptorProto) =
+ add(message.field, value)
+ incl(message.hasField, 2)
+
+proc field*(message: google_protobuf_DescriptorProto): seq[google_protobuf_FieldDescriptorProto] {.inline.} =
+ message.field
+
+proc `field=`*(message: google_protobuf_DescriptorProto, value: seq[google_protobuf_FieldDescriptorProto]) {.inline.} =
+ setfield(message, value)
+
+proc clearextension*(message: google_protobuf_DescriptorProto) =
+ message.extension = @[]
+ excl(message.hasField, [6])
+
+proc hasextension*(message: google_protobuf_DescriptorProto): bool =
+ result = contains(message.hasField, 6) or (len(message.extension) > 0)
+
+proc setextension*(message: google_protobuf_DescriptorProto, value: seq[google_protobuf_FieldDescriptorProto]) =
+ message.extension = value
+ incl(message.hasField, 6)
+
+proc addextension*(message: google_protobuf_DescriptorProto, value: google_protobuf_FieldDescriptorProto) =
+ add(message.extension, value)
+ incl(message.hasField, 6)
+
+proc extension*(message: google_protobuf_DescriptorProto): seq[google_protobuf_FieldDescriptorProto] {.inline.} =
+ message.extension
+
+proc `extension=`*(message: google_protobuf_DescriptorProto, value: seq[google_protobuf_FieldDescriptorProto]) {.inline.} =
+ setextension(message, value)
+
+proc clearnested_type*(message: google_protobuf_DescriptorProto) =
+ message.nested_type = @[]
+ excl(message.hasField, [3])
+
+proc hasnested_type*(message: google_protobuf_DescriptorProto): bool =
+ result = contains(message.hasField, 3) or (len(message.nested_type) > 0)
+
+proc setnested_type*(message: google_protobuf_DescriptorProto, value: seq[google_protobuf_DescriptorProto]) =
+ message.nested_type = value
+ incl(message.hasField, 3)
+
+proc addnested_type*(message: google_protobuf_DescriptorProto, value: google_protobuf_DescriptorProto) =
+ add(message.nested_type, value)
+ incl(message.hasField, 3)
+
+proc nested_type*(message: google_protobuf_DescriptorProto): seq[google_protobuf_DescriptorProto] {.inline.} =
+ message.nested_type
+
+proc `nested_type=`*(message: google_protobuf_DescriptorProto, value: seq[google_protobuf_DescriptorProto]) {.inline.} =
+ setnested_type(message, value)
+
+proc clearenum_type*(message: google_protobuf_DescriptorProto) =
+ message.enum_type = @[]
+ excl(message.hasField, [4])
+
+proc hasenum_type*(message: google_protobuf_DescriptorProto): bool =
+ result = contains(message.hasField, 4) or (len(message.enum_type) > 0)
+
+proc setenum_type*(message: google_protobuf_DescriptorProto, value: seq[google_protobuf_EnumDescriptorProto]) =
+ message.enum_type = value
+ incl(message.hasField, 4)
+
+proc addenum_type*(message: google_protobuf_DescriptorProto, value: google_protobuf_EnumDescriptorProto) =
+ add(message.enum_type, value)
+ incl(message.hasField, 4)
+
+proc enum_type*(message: google_protobuf_DescriptorProto): seq[google_protobuf_EnumDescriptorProto] {.inline.} =
+ message.enum_type
+
+proc `enum_type=`*(message: google_protobuf_DescriptorProto, value: seq[google_protobuf_EnumDescriptorProto]) {.inline.} =
+ setenum_type(message, value)
+
+proc clearextension_range*(message: google_protobuf_DescriptorProto) =
+ message.extension_range = @[]
+ excl(message.hasField, [5])
+
+proc hasextension_range*(message: google_protobuf_DescriptorProto): bool =
+ result = contains(message.hasField, 5) or (len(message.extension_range) > 0)
+
+proc setextension_range*(message: google_protobuf_DescriptorProto, value: seq[google_protobuf_DescriptorProto_ExtensionRange]) =
+ message.extension_range = value
+ incl(message.hasField, 5)
+
+proc addextension_range*(message: google_protobuf_DescriptorProto, value: google_protobuf_DescriptorProto_ExtensionRange) =
+ add(message.extension_range, value)
+ incl(message.hasField, 5)
+
+proc extension_range*(message: google_protobuf_DescriptorProto): seq[google_protobuf_DescriptorProto_ExtensionRange] {.inline.} =
+ message.extension_range
+
+proc `extension_range=`*(message: google_protobuf_DescriptorProto, value: seq[google_protobuf_DescriptorProto_ExtensionRange]) {.inline.} =
+ setextension_range(message, value)
+
+proc clearoneof_decl*(message: google_protobuf_DescriptorProto) =
+ message.oneof_decl = @[]
+ excl(message.hasField, [8])
+
+proc hasoneof_decl*(message: google_protobuf_DescriptorProto): bool =
+ result = contains(message.hasField, 8) or (len(message.oneof_decl) > 0)
+
+proc setoneof_decl*(message: google_protobuf_DescriptorProto, value: seq[google_protobuf_OneofDescriptorProto]) =
+ message.oneof_decl = value
+ incl(message.hasField, 8)
+
+proc addoneof_decl*(message: google_protobuf_DescriptorProto, value: google_protobuf_OneofDescriptorProto) =
+ add(message.oneof_decl, value)
+ incl(message.hasField, 8)
+
+proc oneof_decl*(message: google_protobuf_DescriptorProto): seq[google_protobuf_OneofDescriptorProto] {.inline.} =
+ message.oneof_decl
+
+proc `oneof_decl=`*(message: google_protobuf_DescriptorProto, value: seq[google_protobuf_OneofDescriptorProto]) {.inline.} =
+ setoneof_decl(message, value)
+
+proc clearoptions*(message: google_protobuf_DescriptorProto) =
+ message.options = nil
+ excl(message.hasField, [7])
+
+proc hasoptions*(message: google_protobuf_DescriptorProto): bool =
+ result = contains(message.hasField, 7)
+
+proc setoptions*(message: google_protobuf_DescriptorProto, value: google_protobuf_MessageOptions) =
+ message.options = value
+ incl(message.hasField, 7)
+
+proc options*(message: google_protobuf_DescriptorProto): google_protobuf_MessageOptions {.inline.} =
+ message.options
+
+proc `options=`*(message: google_protobuf_DescriptorProto, value: google_protobuf_MessageOptions) {.inline.} =
+ setoptions(message, value)
+
+proc clearreserved_range*(message: google_protobuf_DescriptorProto) =
+ message.reserved_range = @[]
+ excl(message.hasField, [9])
+
+proc hasreserved_range*(message: google_protobuf_DescriptorProto): bool =
+ result = contains(message.hasField, 9) or (len(message.reserved_range) > 0)
+
+proc setreserved_range*(message: google_protobuf_DescriptorProto, value: seq[google_protobuf_DescriptorProto_ReservedRange]) =
+ message.reserved_range = value
+ incl(message.hasField, 9)
+
+proc addreserved_range*(message: google_protobuf_DescriptorProto, value: google_protobuf_DescriptorProto_ReservedRange) =
+ add(message.reserved_range, value)
+ incl(message.hasField, 9)
+
+proc reserved_range*(message: google_protobuf_DescriptorProto): seq[google_protobuf_DescriptorProto_ReservedRange] {.inline.} =
+ message.reserved_range
+
+proc `reserved_range=`*(message: google_protobuf_DescriptorProto, value: seq[google_protobuf_DescriptorProto_ReservedRange]) {.inline.} =
+ setreserved_range(message, value)
+
+proc clearreserved_name*(message: google_protobuf_DescriptorProto) =
+ message.reserved_name = @[]
+ excl(message.hasField, [10])
+
+proc hasreserved_name*(message: google_protobuf_DescriptorProto): bool =
+ result = contains(message.hasField, 10) or (len(message.reserved_name) > 0)
+
+proc setreserved_name*(message: google_protobuf_DescriptorProto, value: seq[string]) =
+ message.reserved_name = value
+ incl(message.hasField, 10)
+
+proc addreserved_name*(message: google_protobuf_DescriptorProto, value: string) =
+ add(message.reserved_name, value)
+ incl(message.hasField, 10)
+
+proc reserved_name*(message: google_protobuf_DescriptorProto): seq[string] {.inline.} =
+ message.reserved_name
+
+proc `reserved_name=`*(message: google_protobuf_DescriptorProto, value: seq[string]) {.inline.} =
+ setreserved_name(message, value)
+
+proc sizeOfgoogle_protobuf_DescriptorProto*(message: google_protobuf_DescriptorProto): uint64 =
+ if hasname(message):
+ result = result + sizeOfTag(1, WireType.LengthDelimited)
+ result = result + sizeOfString(message.name)
+ for value in message.field:
+ result = result + sizeOfTag(2, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_FieldDescriptorProto(value))
+ for value in message.extension:
+ result = result + sizeOfTag(6, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_FieldDescriptorProto(value))
+ for value in message.nested_type:
+ result = result + sizeOfTag(3, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_DescriptorProto(value))
+ for value in message.enum_type:
+ result = result + sizeOfTag(4, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_EnumDescriptorProto(value))
+ for value in message.extension_range:
+ result = result + sizeOfTag(5, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_DescriptorProto_ExtensionRange(value))
+ for value in message.oneof_decl:
+ result = result + sizeOfTag(8, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_OneofDescriptorProto(value))
+ if hasoptions(message):
+ result = result + sizeOfTag(7, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_MessageOptions(message.options))
+ for value in message.reserved_range:
+ result = result + sizeOfTag(9, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_DescriptorProto_ReservedRange(value))
+ for value in message.reserved_name:
+ result = result + sizeOfTag(10, WireType.LengthDelimited)
+ result = result + sizeOfString(value)
+
+proc writegoogle_protobuf_DescriptorProto*(stream: ProtobufStream, message: google_protobuf_DescriptorProto) =
+ if hasname(message):
+ writeString(stream, message.name, 1)
+ for value in message.field:
+ writeMessage(stream, value, 2)
+ for value in message.extension:
+ writeMessage(stream, value, 6)
+ for value in message.nested_type:
+ writeMessage(stream, value, 3)
+ for value in message.enum_type:
+ writeMessage(stream, value, 4)
+ for value in message.extension_range:
+ writeMessage(stream, value, 5)
+ for value in message.oneof_decl:
+ writeMessage(stream, value, 8)
+ if hasoptions(message):
+ writeMessage(stream, message.options, 7)
+ for value in message.reserved_range:
+ writeMessage(stream, value, 9)
+ for value in message.reserved_name:
+ writeString(stream, value, 10)
+
+proc readgoogle_protobuf_DescriptorProto*(stream: ProtobufStream): google_protobuf_DescriptorProto =
+ result = newgoogle_protobuf_DescriptorProto()
+ 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)
+ setname(result, readString(stream))
+ of 2:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ addfield(result, readgoogle_protobuf_FieldDescriptorProto(pbs))
+ of 6:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ addextension(result, readgoogle_protobuf_FieldDescriptorProto(pbs))
+ of 3:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ addnested_type(result, readgoogle_protobuf_DescriptorProto(pbs))
+ of 4:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ addenum_type(result, readgoogle_protobuf_EnumDescriptorProto(pbs))
+ of 5:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ addextension_range(result, readgoogle_protobuf_DescriptorProto_ExtensionRange(pbs))
+ of 8:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ addoneof_decl(result, readgoogle_protobuf_OneofDescriptorProto(pbs))
+ of 7:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ setoptions(result, readgoogle_protobuf_MessageOptions(pbs))
+ of 9:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ addreserved_range(result, readgoogle_protobuf_DescriptorProto_ReservedRange(pbs))
+ of 10:
+ expectWireType(wireType, WireType.LengthDelimited)
+ addreserved_name(result, readString(stream))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_DescriptorProto): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_DescriptorProto(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_DescriptorProto*(data: string): google_protobuf_DescriptorProto =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_DescriptorProto(pbs)
+
+
+proc newgoogle_protobuf_FileOptions*(): google_protobuf_FileOptions =
+ new(result)
+ result.hasField = initIntSet()
+ result.java_package = ""
+ result.java_outer_classname = ""
+ result.java_multiple_files = false
+ result.java_generate_equals_and_hash = false
+ result.java_string_check_utf8 = false
+ result.optimize_for = cast[google_protobuf_FileOptions_OptimizeMode](0)
+ result.go_package = ""
+ result.cc_generic_services = false
+ result.java_generic_services = false
+ result.py_generic_services = false
+ result.php_generic_services = false
+ result.deprecated = false
+ result.cc_enable_arenas = false
+ result.objc_class_prefix = ""
+ result.csharp_namespace = ""
+ result.swift_prefix = ""
+ result.php_class_prefix = ""
+ result.php_namespace = ""
+ result.uninterpreted_option = @[]
+
+proc clearjava_package*(message: google_protobuf_FileOptions) =
+ message.java_package = ""
+ excl(message.hasField, [1])
+
+proc hasjava_package*(message: google_protobuf_FileOptions): bool =
+ result = contains(message.hasField, 1)
+
+proc setjava_package*(message: google_protobuf_FileOptions, value: string) =
+ message.java_package = value
+ incl(message.hasField, 1)
+
+proc java_package*(message: google_protobuf_FileOptions): string {.inline.} =
+ message.java_package
+
+proc `java_package=`*(message: google_protobuf_FileOptions, value: string) {.inline.} =
+ setjava_package(message, value)
+
+proc clearjava_outer_classname*(message: google_protobuf_FileOptions) =
+ message.java_outer_classname = ""
+ excl(message.hasField, [8])
+
+proc hasjava_outer_classname*(message: google_protobuf_FileOptions): bool =
+ result = contains(message.hasField, 8)
+
+proc setjava_outer_classname*(message: google_protobuf_FileOptions, value: string) =
+ message.java_outer_classname = value
+ incl(message.hasField, 8)
+
+proc java_outer_classname*(message: google_protobuf_FileOptions): string {.inline.} =
+ message.java_outer_classname
+
+proc `java_outer_classname=`*(message: google_protobuf_FileOptions, value: string) {.inline.} =
+ setjava_outer_classname(message, value)
+
+proc clearjava_multiple_files*(message: google_protobuf_FileOptions) =
+ message.java_multiple_files = false
+ excl(message.hasField, [10])
+
+proc hasjava_multiple_files*(message: google_protobuf_FileOptions): bool =
+ result = contains(message.hasField, 10)
+
+proc setjava_multiple_files*(message: google_protobuf_FileOptions, value: bool) =
+ message.java_multiple_files = value
+ incl(message.hasField, 10)
+
+proc java_multiple_files*(message: google_protobuf_FileOptions): bool {.inline.} =
+ message.java_multiple_files
+
+proc `java_multiple_files=`*(message: google_protobuf_FileOptions, value: bool) {.inline.} =
+ setjava_multiple_files(message, value)
+
+proc clearjava_generate_equals_and_hash*(message: google_protobuf_FileOptions) =
+ message.java_generate_equals_and_hash = false
+ excl(message.hasField, [20])
+
+proc hasjava_generate_equals_and_hash*(message: google_protobuf_FileOptions): bool =
+ result = contains(message.hasField, 20)
+
+proc setjava_generate_equals_and_hash*(message: google_protobuf_FileOptions, value: bool) =
+ message.java_generate_equals_and_hash = value
+ incl(message.hasField, 20)
+
+proc java_generate_equals_and_hash*(message: google_protobuf_FileOptions): bool {.inline.} =
+ message.java_generate_equals_and_hash
+
+proc `java_generate_equals_and_hash=`*(message: google_protobuf_FileOptions, value: bool) {.inline.} =
+ setjava_generate_equals_and_hash(message, value)
+
+proc clearjava_string_check_utf8*(message: google_protobuf_FileOptions) =
+ message.java_string_check_utf8 = false
+ excl(message.hasField, [27])
+
+proc hasjava_string_check_utf8*(message: google_protobuf_FileOptions): bool =
+ result = contains(message.hasField, 27)
+
+proc setjava_string_check_utf8*(message: google_protobuf_FileOptions, value: bool) =
+ message.java_string_check_utf8 = value
+ incl(message.hasField, 27)
+
+proc java_string_check_utf8*(message: google_protobuf_FileOptions): bool {.inline.} =
+ message.java_string_check_utf8
+
+proc `java_string_check_utf8=`*(message: google_protobuf_FileOptions, value: bool) {.inline.} =
+ setjava_string_check_utf8(message, value)
+
+proc clearoptimize_for*(message: google_protobuf_FileOptions) =
+ message.optimize_for = cast[google_protobuf_FileOptions_OptimizeMode](0)
+ excl(message.hasField, [9])
+
+proc hasoptimize_for*(message: google_protobuf_FileOptions): bool =
+ result = contains(message.hasField, 9)
+
+proc setoptimize_for*(message: google_protobuf_FileOptions, value: google_protobuf_FileOptions_OptimizeMode) =
+ message.optimize_for = value
+ incl(message.hasField, 9)
+
+proc optimize_for*(message: google_protobuf_FileOptions): google_protobuf_FileOptions_OptimizeMode {.inline.} =
+ message.optimize_for
+
+proc `optimize_for=`*(message: google_protobuf_FileOptions, value: google_protobuf_FileOptions_OptimizeMode) {.inline.} =
+ setoptimize_for(message, value)
+
+proc cleargo_package*(message: google_protobuf_FileOptions) =
+ message.go_package = ""
+ excl(message.hasField, [11])
+
+proc hasgo_package*(message: google_protobuf_FileOptions): bool =
+ result = contains(message.hasField, 11)
+
+proc setgo_package*(message: google_protobuf_FileOptions, value: string) =
+ message.go_package = value
+ incl(message.hasField, 11)
+
+proc go_package*(message: google_protobuf_FileOptions): string {.inline.} =
+ message.go_package
+
+proc `go_package=`*(message: google_protobuf_FileOptions, value: string) {.inline.} =
+ setgo_package(message, value)
+
+proc clearcc_generic_services*(message: google_protobuf_FileOptions) =
+ message.cc_generic_services = false
+ excl(message.hasField, [16])
+
+proc hascc_generic_services*(message: google_protobuf_FileOptions): bool =
+ result = contains(message.hasField, 16)
+
+proc setcc_generic_services*(message: google_protobuf_FileOptions, value: bool) =
+ message.cc_generic_services = value
+ incl(message.hasField, 16)
+
+proc cc_generic_services*(message: google_protobuf_FileOptions): bool {.inline.} =
+ message.cc_generic_services
+
+proc `cc_generic_services=`*(message: google_protobuf_FileOptions, value: bool) {.inline.} =
+ setcc_generic_services(message, value)
+
+proc clearjava_generic_services*(message: google_protobuf_FileOptions) =
+ message.java_generic_services = false
+ excl(message.hasField, [17])
+
+proc hasjava_generic_services*(message: google_protobuf_FileOptions): bool =
+ result = contains(message.hasField, 17)
+
+proc setjava_generic_services*(message: google_protobuf_FileOptions, value: bool) =
+ message.java_generic_services = value
+ incl(message.hasField, 17)
+
+proc java_generic_services*(message: google_protobuf_FileOptions): bool {.inline.} =
+ message.java_generic_services
+
+proc `java_generic_services=`*(message: google_protobuf_FileOptions, value: bool) {.inline.} =
+ setjava_generic_services(message, value)
+
+proc clearpy_generic_services*(message: google_protobuf_FileOptions) =
+ message.py_generic_services = false
+ excl(message.hasField, [18])
+
+proc haspy_generic_services*(message: google_protobuf_FileOptions): bool =
+ result = contains(message.hasField, 18)
+
+proc setpy_generic_services*(message: google_protobuf_FileOptions, value: bool) =
+ message.py_generic_services = value
+ incl(message.hasField, 18)
+
+proc py_generic_services*(message: google_protobuf_FileOptions): bool {.inline.} =
+ message.py_generic_services
+
+proc `py_generic_services=`*(message: google_protobuf_FileOptions, value: bool) {.inline.} =
+ setpy_generic_services(message, value)
+
+proc clearphp_generic_services*(message: google_protobuf_FileOptions) =
+ message.php_generic_services = false
+ excl(message.hasField, [42])
+
+proc hasphp_generic_services*(message: google_protobuf_FileOptions): bool =
+ result = contains(message.hasField, 42)
+
+proc setphp_generic_services*(message: google_protobuf_FileOptions, value: bool) =
+ message.php_generic_services = value
+ incl(message.hasField, 42)
+
+proc php_generic_services*(message: google_protobuf_FileOptions): bool {.inline.} =
+ message.php_generic_services
+
+proc `php_generic_services=`*(message: google_protobuf_FileOptions, value: bool) {.inline.} =
+ setphp_generic_services(message, value)
+
+proc cleardeprecated*(message: google_protobuf_FileOptions) =
+ message.deprecated = false
+ excl(message.hasField, [23])
+
+proc hasdeprecated*(message: google_protobuf_FileOptions): bool =
+ result = contains(message.hasField, 23)
+
+proc setdeprecated*(message: google_protobuf_FileOptions, value: bool) =
+ message.deprecated = value
+ incl(message.hasField, 23)
+
+proc deprecated*(message: google_protobuf_FileOptions): bool {.inline.} =
+ message.deprecated
+
+proc `deprecated=`*(message: google_protobuf_FileOptions, value: bool) {.inline.} =
+ setdeprecated(message, value)
+
+proc clearcc_enable_arenas*(message: google_protobuf_FileOptions) =
+ message.cc_enable_arenas = false
+ excl(message.hasField, [31])
+
+proc hascc_enable_arenas*(message: google_protobuf_FileOptions): bool =
+ result = contains(message.hasField, 31)
+
+proc setcc_enable_arenas*(message: google_protobuf_FileOptions, value: bool) =
+ message.cc_enable_arenas = value
+ incl(message.hasField, 31)
+
+proc cc_enable_arenas*(message: google_protobuf_FileOptions): bool {.inline.} =
+ message.cc_enable_arenas
+
+proc `cc_enable_arenas=`*(message: google_protobuf_FileOptions, value: bool) {.inline.} =
+ setcc_enable_arenas(message, value)
+
+proc clearobjc_class_prefix*(message: google_protobuf_FileOptions) =
+ message.objc_class_prefix = ""
+ excl(message.hasField, [36])
+
+proc hasobjc_class_prefix*(message: google_protobuf_FileOptions): bool =
+ result = contains(message.hasField, 36)
+
+proc setobjc_class_prefix*(message: google_protobuf_FileOptions, value: string) =
+ message.objc_class_prefix = value
+ incl(message.hasField, 36)
+
+proc objc_class_prefix*(message: google_protobuf_FileOptions): string {.inline.} =
+ message.objc_class_prefix
+
+proc `objc_class_prefix=`*(message: google_protobuf_FileOptions, value: string) {.inline.} =
+ setobjc_class_prefix(message, value)
+
+proc clearcsharp_namespace*(message: google_protobuf_FileOptions) =
+ message.csharp_namespace = ""
+ excl(message.hasField, [37])
+
+proc hascsharp_namespace*(message: google_protobuf_FileOptions): bool =
+ result = contains(message.hasField, 37)
+
+proc setcsharp_namespace*(message: google_protobuf_FileOptions, value: string) =
+ message.csharp_namespace = value
+ incl(message.hasField, 37)
+
+proc csharp_namespace*(message: google_protobuf_FileOptions): string {.inline.} =
+ message.csharp_namespace
+
+proc `csharp_namespace=`*(message: google_protobuf_FileOptions, value: string) {.inline.} =
+ setcsharp_namespace(message, value)
+
+proc clearswift_prefix*(message: google_protobuf_FileOptions) =
+ message.swift_prefix = ""
+ excl(message.hasField, [39])
+
+proc hasswift_prefix*(message: google_protobuf_FileOptions): bool =
+ result = contains(message.hasField, 39)
+
+proc setswift_prefix*(message: google_protobuf_FileOptions, value: string) =
+ message.swift_prefix = value
+ incl(message.hasField, 39)
+
+proc swift_prefix*(message: google_protobuf_FileOptions): string {.inline.} =
+ message.swift_prefix
+
+proc `swift_prefix=`*(message: google_protobuf_FileOptions, value: string) {.inline.} =
+ setswift_prefix(message, value)
+
+proc clearphp_class_prefix*(message: google_protobuf_FileOptions) =
+ message.php_class_prefix = ""
+ excl(message.hasField, [40])
+
+proc hasphp_class_prefix*(message: google_protobuf_FileOptions): bool =
+ result = contains(message.hasField, 40)
+
+proc setphp_class_prefix*(message: google_protobuf_FileOptions, value: string) =
+ message.php_class_prefix = value
+ incl(message.hasField, 40)
+
+proc php_class_prefix*(message: google_protobuf_FileOptions): string {.inline.} =
+ message.php_class_prefix
+
+proc `php_class_prefix=`*(message: google_protobuf_FileOptions, value: string) {.inline.} =
+ setphp_class_prefix(message, value)
+
+proc clearphp_namespace*(message: google_protobuf_FileOptions) =
+ message.php_namespace = ""
+ excl(message.hasField, [41])
+
+proc hasphp_namespace*(message: google_protobuf_FileOptions): bool =
+ result = contains(message.hasField, 41)
+
+proc setphp_namespace*(message: google_protobuf_FileOptions, value: string) =
+ message.php_namespace = value
+ incl(message.hasField, 41)
+
+proc php_namespace*(message: google_protobuf_FileOptions): string {.inline.} =
+ message.php_namespace
+
+proc `php_namespace=`*(message: google_protobuf_FileOptions, value: string) {.inline.} =
+ setphp_namespace(message, value)
+
+proc clearuninterpreted_option*(message: google_protobuf_FileOptions) =
+ message.uninterpreted_option = @[]
+ excl(message.hasField, [999])
+
+proc hasuninterpreted_option*(message: google_protobuf_FileOptions): bool =
+ result = contains(message.hasField, 999) or (len(message.uninterpreted_option) > 0)
+
+proc setuninterpreted_option*(message: google_protobuf_FileOptions, value: seq[google_protobuf_UninterpretedOption]) =
+ message.uninterpreted_option = value
+ incl(message.hasField, 999)
+
+proc adduninterpreted_option*(message: google_protobuf_FileOptions, value: google_protobuf_UninterpretedOption) =
+ add(message.uninterpreted_option, value)
+ incl(message.hasField, 999)
+
+proc uninterpreted_option*(message: google_protobuf_FileOptions): seq[google_protobuf_UninterpretedOption] {.inline.} =
+ message.uninterpreted_option
+
+proc `uninterpreted_option=`*(message: google_protobuf_FileOptions, value: seq[google_protobuf_UninterpretedOption]) {.inline.} =
+ setuninterpreted_option(message, value)
+
+proc sizeOfgoogle_protobuf_FileOptions*(message: google_protobuf_FileOptions): uint64 =
+ if hasjava_package(message):
+ result = result + sizeOfTag(1, WireType.LengthDelimited)
+ result = result + sizeOfString(message.java_package)
+ if hasjava_outer_classname(message):
+ result = result + sizeOfTag(8, WireType.LengthDelimited)
+ result = result + sizeOfString(message.java_outer_classname)
+ if hasjava_multiple_files(message):
+ result = result + sizeOfTag(10, WireType.Varint)
+ result = result + sizeOfBool(message.java_multiple_files)
+ if hasjava_generate_equals_and_hash(message):
+ result = result + sizeOfTag(20, WireType.Varint)
+ result = result + sizeOfBool(message.java_generate_equals_and_hash)
+ if hasjava_string_check_utf8(message):
+ result = result + sizeOfTag(27, WireType.Varint)
+ result = result + sizeOfBool(message.java_string_check_utf8)
+ if hasoptimize_for(message):
+ result = result + sizeOfTag(9, WireType.Varint)
+ result = result + sizeOfEnum[google_protobuf_FileOptions_OptimizeMode](message.optimize_for)
+ if hasgo_package(message):
+ result = result + sizeOfTag(11, WireType.LengthDelimited)
+ result = result + sizeOfString(message.go_package)
+ if hascc_generic_services(message):
+ result = result + sizeOfTag(16, WireType.Varint)
+ result = result + sizeOfBool(message.cc_generic_services)
+ if hasjava_generic_services(message):
+ result = result + sizeOfTag(17, WireType.Varint)
+ result = result + sizeOfBool(message.java_generic_services)
+ if haspy_generic_services(message):
+ result = result + sizeOfTag(18, WireType.Varint)
+ result = result + sizeOfBool(message.py_generic_services)
+ if hasphp_generic_services(message):
+ result = result + sizeOfTag(42, WireType.Varint)
+ result = result + sizeOfBool(message.php_generic_services)
+ if hasdeprecated(message):
+ result = result + sizeOfTag(23, WireType.Varint)
+ result = result + sizeOfBool(message.deprecated)
+ if hascc_enable_arenas(message):
+ result = result + sizeOfTag(31, WireType.Varint)
+ result = result + sizeOfBool(message.cc_enable_arenas)
+ if hasobjc_class_prefix(message):
+ result = result + sizeOfTag(36, WireType.LengthDelimited)
+ result = result + sizeOfString(message.objc_class_prefix)
+ if hascsharp_namespace(message):
+ result = result + sizeOfTag(37, WireType.LengthDelimited)
+ result = result + sizeOfString(message.csharp_namespace)
+ if hasswift_prefix(message):
+ result = result + sizeOfTag(39, WireType.LengthDelimited)
+ result = result + sizeOfString(message.swift_prefix)
+ if hasphp_class_prefix(message):
+ result = result + sizeOfTag(40, WireType.LengthDelimited)
+ result = result + sizeOfString(message.php_class_prefix)
+ if hasphp_namespace(message):
+ result = result + sizeOfTag(41, WireType.LengthDelimited)
+ result = result + sizeOfString(message.php_namespace)
+ for value in message.uninterpreted_option:
+ result = result + sizeOfTag(999, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_UninterpretedOption(value))
+
+proc writegoogle_protobuf_FileOptions*(stream: ProtobufStream, message: google_protobuf_FileOptions) =
+ if hasjava_package(message):
+ writeString(stream, message.java_package, 1)
+ if hasjava_outer_classname(message):
+ writeString(stream, message.java_outer_classname, 8)
+ if hasjava_multiple_files(message):
+ writeBool(stream, message.java_multiple_files, 10)
+ if hasjava_generate_equals_and_hash(message):
+ writeBool(stream, message.java_generate_equals_and_hash, 20)
+ if hasjava_string_check_utf8(message):
+ writeBool(stream, message.java_string_check_utf8, 27)
+ if hasoptimize_for(message):
+ writeEnum(stream, message.optimize_for, 9)
+ if hasgo_package(message):
+ writeString(stream, message.go_package, 11)
+ if hascc_generic_services(message):
+ writeBool(stream, message.cc_generic_services, 16)
+ if hasjava_generic_services(message):
+ writeBool(stream, message.java_generic_services, 17)
+ if haspy_generic_services(message):
+ writeBool(stream, message.py_generic_services, 18)
+ if hasphp_generic_services(message):
+ writeBool(stream, message.php_generic_services, 42)
+ if hasdeprecated(message):
+ writeBool(stream, message.deprecated, 23)
+ if hascc_enable_arenas(message):
+ writeBool(stream, message.cc_enable_arenas, 31)
+ if hasobjc_class_prefix(message):
+ writeString(stream, message.objc_class_prefix, 36)
+ if hascsharp_namespace(message):
+ writeString(stream, message.csharp_namespace, 37)
+ if hasswift_prefix(message):
+ writeString(stream, message.swift_prefix, 39)
+ if hasphp_class_prefix(message):
+ writeString(stream, message.php_class_prefix, 40)
+ if hasphp_namespace(message):
+ writeString(stream, message.php_namespace, 41)
+ for value in message.uninterpreted_option:
+ writeMessage(stream, value, 999)
+
+proc readgoogle_protobuf_FileOptions*(stream: ProtobufStream): google_protobuf_FileOptions =
+ result = newgoogle_protobuf_FileOptions()
+ 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)
+ setjava_package(result, readString(stream))
+ of 8:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setjava_outer_classname(result, readString(stream))
+ of 10:
+ expectWireType(wireType, WireType.Varint)
+ setjava_multiple_files(result, readBool(stream))
+ of 20:
+ expectWireType(wireType, WireType.Varint)
+ setjava_generate_equals_and_hash(result, readBool(stream))
+ of 27:
+ expectWireType(wireType, WireType.Varint)
+ setjava_string_check_utf8(result, readBool(stream))
+ of 9:
+ expectWireType(wireType, WireType.Varint)
+ setoptimize_for(result, readEnum[google_protobuf_FileOptions_OptimizeMode](stream))
+ of 11:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setgo_package(result, readString(stream))
+ of 16:
+ expectWireType(wireType, WireType.Varint)
+ setcc_generic_services(result, readBool(stream))
+ of 17:
+ expectWireType(wireType, WireType.Varint)
+ setjava_generic_services(result, readBool(stream))
+ of 18:
+ expectWireType(wireType, WireType.Varint)
+ setpy_generic_services(result, readBool(stream))
+ of 42:
+ expectWireType(wireType, WireType.Varint)
+ setphp_generic_services(result, readBool(stream))
+ of 23:
+ expectWireType(wireType, WireType.Varint)
+ setdeprecated(result, readBool(stream))
+ of 31:
+ expectWireType(wireType, WireType.Varint)
+ setcc_enable_arenas(result, readBool(stream))
+ of 36:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setobjc_class_prefix(result, readString(stream))
+ of 37:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setcsharp_namespace(result, readString(stream))
+ of 39:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setswift_prefix(result, readString(stream))
+ of 40:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setphp_class_prefix(result, readString(stream))
+ of 41:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setphp_namespace(result, readString(stream))
+ of 999:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ adduninterpreted_option(result, readgoogle_protobuf_UninterpretedOption(pbs))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_FileOptions): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_FileOptions(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_FileOptions*(data: string): google_protobuf_FileOptions =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_FileOptions(pbs)
+
+
+proc newgoogle_protobuf_ServiceOptions*(): google_protobuf_ServiceOptions =
+ new(result)
+ result.hasField = initIntSet()
+ result.deprecated = false
+ result.uninterpreted_option = @[]
+
+proc cleardeprecated*(message: google_protobuf_ServiceOptions) =
+ message.deprecated = false
+ excl(message.hasField, [33])
+
+proc hasdeprecated*(message: google_protobuf_ServiceOptions): bool =
+ result = contains(message.hasField, 33)
+
+proc setdeprecated*(message: google_protobuf_ServiceOptions, value: bool) =
+ message.deprecated = value
+ incl(message.hasField, 33)
+
+proc deprecated*(message: google_protobuf_ServiceOptions): bool {.inline.} =
+ message.deprecated
+
+proc `deprecated=`*(message: google_protobuf_ServiceOptions, value: bool) {.inline.} =
+ setdeprecated(message, value)
+
+proc clearuninterpreted_option*(message: google_protobuf_ServiceOptions) =
+ message.uninterpreted_option = @[]
+ excl(message.hasField, [999])
+
+proc hasuninterpreted_option*(message: google_protobuf_ServiceOptions): bool =
+ result = contains(message.hasField, 999) or (len(message.uninterpreted_option) > 0)
+
+proc setuninterpreted_option*(message: google_protobuf_ServiceOptions, value: seq[google_protobuf_UninterpretedOption]) =
+ message.uninterpreted_option = value
+ incl(message.hasField, 999)
+
+proc adduninterpreted_option*(message: google_protobuf_ServiceOptions, value: google_protobuf_UninterpretedOption) =
+ add(message.uninterpreted_option, value)
+ incl(message.hasField, 999)
+
+proc uninterpreted_option*(message: google_protobuf_ServiceOptions): seq[google_protobuf_UninterpretedOption] {.inline.} =
+ message.uninterpreted_option
+
+proc `uninterpreted_option=`*(message: google_protobuf_ServiceOptions, value: seq[google_protobuf_UninterpretedOption]) {.inline.} =
+ setuninterpreted_option(message, value)
+
+proc sizeOfgoogle_protobuf_ServiceOptions*(message: google_protobuf_ServiceOptions): uint64 =
+ if hasdeprecated(message):
+ result = result + sizeOfTag(33, WireType.Varint)
+ result = result + sizeOfBool(message.deprecated)
+ for value in message.uninterpreted_option:
+ result = result + sizeOfTag(999, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_UninterpretedOption(value))
+
+proc writegoogle_protobuf_ServiceOptions*(stream: ProtobufStream, message: google_protobuf_ServiceOptions) =
+ if hasdeprecated(message):
+ writeBool(stream, message.deprecated, 33)
+ for value in message.uninterpreted_option:
+ writeMessage(stream, value, 999)
+
+proc readgoogle_protobuf_ServiceOptions*(stream: ProtobufStream): google_protobuf_ServiceOptions =
+ result = newgoogle_protobuf_ServiceOptions()
+ while not atEnd(stream):
+ let
+ tag = readTag(stream)
+ wireType = wireType(tag)
+ case fieldNumber(tag)
+ of 0:
+ raise newException(InvalidFieldNumberError, "Invalid field number: 0")
+ of 33:
+ expectWireType(wireType, WireType.Varint)
+ setdeprecated(result, readBool(stream))
+ of 999:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ adduninterpreted_option(result, readgoogle_protobuf_UninterpretedOption(pbs))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_ServiceOptions): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_ServiceOptions(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_ServiceOptions*(data: string): google_protobuf_ServiceOptions =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_ServiceOptions(pbs)
+
+
+proc newgoogle_protobuf_MethodOptions*(): google_protobuf_MethodOptions =
+ new(result)
+ result.hasField = initIntSet()
+ result.deprecated = false
+ result.idempotency_level = google_protobuf_MethodOptions_IdempotencyLevel(0)
+ result.uninterpreted_option = @[]
+
+proc cleardeprecated*(message: google_protobuf_MethodOptions) =
+ message.deprecated = false
+ excl(message.hasField, [33])
+
+proc hasdeprecated*(message: google_protobuf_MethodOptions): bool =
+ result = contains(message.hasField, 33)
+
+proc setdeprecated*(message: google_protobuf_MethodOptions, value: bool) =
+ message.deprecated = value
+ incl(message.hasField, 33)
+
+proc deprecated*(message: google_protobuf_MethodOptions): bool {.inline.} =
+ message.deprecated
+
+proc `deprecated=`*(message: google_protobuf_MethodOptions, value: bool) {.inline.} =
+ setdeprecated(message, value)
+
+proc clearidempotency_level*(message: google_protobuf_MethodOptions) =
+ message.idempotency_level = google_protobuf_MethodOptions_IdempotencyLevel(0)
+ excl(message.hasField, [34])
+
+proc hasidempotency_level*(message: google_protobuf_MethodOptions): bool =
+ result = contains(message.hasField, 34)
+
+proc setidempotency_level*(message: google_protobuf_MethodOptions, value: google_protobuf_MethodOptions_IdempotencyLevel) =
+ message.idempotency_level = value
+ incl(message.hasField, 34)
+
+proc idempotency_level*(message: google_protobuf_MethodOptions): google_protobuf_MethodOptions_IdempotencyLevel {.inline.} =
+ message.idempotency_level
+
+proc `idempotency_level=`*(message: google_protobuf_MethodOptions, value: google_protobuf_MethodOptions_IdempotencyLevel) {.inline.} =
+ setidempotency_level(message, value)
+
+proc clearuninterpreted_option*(message: google_protobuf_MethodOptions) =
+ message.uninterpreted_option = @[]
+ excl(message.hasField, [999])
+
+proc hasuninterpreted_option*(message: google_protobuf_MethodOptions): bool =
+ result = contains(message.hasField, 999) or (len(message.uninterpreted_option) > 0)
+
+proc setuninterpreted_option*(message: google_protobuf_MethodOptions, value: seq[google_protobuf_UninterpretedOption]) =
+ message.uninterpreted_option = value
+ incl(message.hasField, 999)
+
+proc adduninterpreted_option*(message: google_protobuf_MethodOptions, value: google_protobuf_UninterpretedOption) =
+ add(message.uninterpreted_option, value)
+ incl(message.hasField, 999)
+
+proc uninterpreted_option*(message: google_protobuf_MethodOptions): seq[google_protobuf_UninterpretedOption] {.inline.} =
+ message.uninterpreted_option
+
+proc `uninterpreted_option=`*(message: google_protobuf_MethodOptions, value: seq[google_protobuf_UninterpretedOption]) {.inline.} =
+ setuninterpreted_option(message, value)
+
+proc sizeOfgoogle_protobuf_MethodOptions*(message: google_protobuf_MethodOptions): uint64 =
+ if hasdeprecated(message):
+ result = result + sizeOfTag(33, WireType.Varint)
+ result = result + sizeOfBool(message.deprecated)
+ if hasidempotency_level(message):
+ result = result + sizeOfTag(34, WireType.Varint)
+ result = result + sizeOfEnum[google_protobuf_MethodOptions_IdempotencyLevel](message.idempotency_level)
+ for value in message.uninterpreted_option:
+ result = result + sizeOfTag(999, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_UninterpretedOption(value))
+
+proc writegoogle_protobuf_MethodOptions*(stream: ProtobufStream, message: google_protobuf_MethodOptions) =
+ if hasdeprecated(message):
+ writeBool(stream, message.deprecated, 33)
+ if hasidempotency_level(message):
+ writeEnum(stream, message.idempotency_level, 34)
+ for value in message.uninterpreted_option:
+ writeMessage(stream, value, 999)
+
+proc readgoogle_protobuf_MethodOptions*(stream: ProtobufStream): google_protobuf_MethodOptions =
+ result = newgoogle_protobuf_MethodOptions()
+ while not atEnd(stream):
+ let
+ tag = readTag(stream)
+ wireType = wireType(tag)
+ case fieldNumber(tag)
+ of 0:
+ raise newException(InvalidFieldNumberError, "Invalid field number: 0")
+ of 33:
+ expectWireType(wireType, WireType.Varint)
+ setdeprecated(result, readBool(stream))
+ of 34:
+ expectWireType(wireType, WireType.Varint)
+ setidempotency_level(result, readEnum[google_protobuf_MethodOptions_IdempotencyLevel](stream))
+ of 999:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ adduninterpreted_option(result, readgoogle_protobuf_UninterpretedOption(pbs))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_MethodOptions): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_MethodOptions(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_MethodOptions*(data: string): google_protobuf_MethodOptions =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_MethodOptions(pbs)
+
+
+proc newgoogle_protobuf_MethodDescriptorProto*(): google_protobuf_MethodDescriptorProto =
+ new(result)
+ result.hasField = initIntSet()
+ result.name = ""
+ result.input_type = ""
+ result.output_type = ""
+ result.options = nil
+ result.client_streaming = false
+ result.server_streaming = false
+
+proc clearname*(message: google_protobuf_MethodDescriptorProto) =
+ message.name = ""
+ excl(message.hasField, [1])
+
+proc hasname*(message: google_protobuf_MethodDescriptorProto): bool =
+ result = contains(message.hasField, 1)
+
+proc setname*(message: google_protobuf_MethodDescriptorProto, value: string) =
+ message.name = value
+ incl(message.hasField, 1)
+
+proc name*(message: google_protobuf_MethodDescriptorProto): string {.inline.} =
+ message.name
+
+proc `name=`*(message: google_protobuf_MethodDescriptorProto, value: string) {.inline.} =
+ setname(message, value)
+
+proc clearinput_type*(message: google_protobuf_MethodDescriptorProto) =
+ message.input_type = ""
+ excl(message.hasField, [2])
+
+proc hasinput_type*(message: google_protobuf_MethodDescriptorProto): bool =
+ result = contains(message.hasField, 2)
+
+proc setinput_type*(message: google_protobuf_MethodDescriptorProto, value: string) =
+ message.input_type = value
+ incl(message.hasField, 2)
+
+proc input_type*(message: google_protobuf_MethodDescriptorProto): string {.inline.} =
+ message.input_type
+
+proc `input_type=`*(message: google_protobuf_MethodDescriptorProto, value: string) {.inline.} =
+ setinput_type(message, value)
+
+proc clearoutput_type*(message: google_protobuf_MethodDescriptorProto) =
+ message.output_type = ""
+ excl(message.hasField, [3])
+
+proc hasoutput_type*(message: google_protobuf_MethodDescriptorProto): bool =
+ result = contains(message.hasField, 3)
+
+proc setoutput_type*(message: google_protobuf_MethodDescriptorProto, value: string) =
+ message.output_type = value
+ incl(message.hasField, 3)
+
+proc output_type*(message: google_protobuf_MethodDescriptorProto): string {.inline.} =
+ message.output_type
+
+proc `output_type=`*(message: google_protobuf_MethodDescriptorProto, value: string) {.inline.} =
+ setoutput_type(message, value)
+
+proc clearoptions*(message: google_protobuf_MethodDescriptorProto) =
+ message.options = nil
+ excl(message.hasField, [4])
+
+proc hasoptions*(message: google_protobuf_MethodDescriptorProto): bool =
+ result = contains(message.hasField, 4)
+
+proc setoptions*(message: google_protobuf_MethodDescriptorProto, value: google_protobuf_MethodOptions) =
+ message.options = value
+ incl(message.hasField, 4)
+
+proc options*(message: google_protobuf_MethodDescriptorProto): google_protobuf_MethodOptions {.inline.} =
+ message.options
+
+proc `options=`*(message: google_protobuf_MethodDescriptorProto, value: google_protobuf_MethodOptions) {.inline.} =
+ setoptions(message, value)
+
+proc clearclient_streaming*(message: google_protobuf_MethodDescriptorProto) =
+ message.client_streaming = false
+ excl(message.hasField, [5])
+
+proc hasclient_streaming*(message: google_protobuf_MethodDescriptorProto): bool =
+ result = contains(message.hasField, 5)
+
+proc setclient_streaming*(message: google_protobuf_MethodDescriptorProto, value: bool) =
+ message.client_streaming = value
+ incl(message.hasField, 5)
+
+proc client_streaming*(message: google_protobuf_MethodDescriptorProto): bool {.inline.} =
+ message.client_streaming
+
+proc `client_streaming=`*(message: google_protobuf_MethodDescriptorProto, value: bool) {.inline.} =
+ setclient_streaming(message, value)
+
+proc clearserver_streaming*(message: google_protobuf_MethodDescriptorProto) =
+ message.server_streaming = false
+ excl(message.hasField, [6])
+
+proc hasserver_streaming*(message: google_protobuf_MethodDescriptorProto): bool =
+ result = contains(message.hasField, 6)
+
+proc setserver_streaming*(message: google_protobuf_MethodDescriptorProto, value: bool) =
+ message.server_streaming = value
+ incl(message.hasField, 6)
+
+proc server_streaming*(message: google_protobuf_MethodDescriptorProto): bool {.inline.} =
+ message.server_streaming
+
+proc `server_streaming=`*(message: google_protobuf_MethodDescriptorProto, value: bool) {.inline.} =
+ setserver_streaming(message, value)
+
+proc sizeOfgoogle_protobuf_MethodDescriptorProto*(message: google_protobuf_MethodDescriptorProto): uint64 =
+ if hasname(message):
+ result = result + sizeOfTag(1, WireType.LengthDelimited)
+ result = result + sizeOfString(message.name)
+ if hasinput_type(message):
+ result = result + sizeOfTag(2, WireType.LengthDelimited)
+ result = result + sizeOfString(message.input_type)
+ if hasoutput_type(message):
+ result = result + sizeOfTag(3, WireType.LengthDelimited)
+ result = result + sizeOfString(message.output_type)
+ if hasoptions(message):
+ result = result + sizeOfTag(4, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_MethodOptions(message.options))
+ if hasclient_streaming(message):
+ result = result + sizeOfTag(5, WireType.Varint)
+ result = result + sizeOfBool(message.client_streaming)
+ if hasserver_streaming(message):
+ result = result + sizeOfTag(6, WireType.Varint)
+ result = result + sizeOfBool(message.server_streaming)
+
+proc writegoogle_protobuf_MethodDescriptorProto*(stream: ProtobufStream, message: google_protobuf_MethodDescriptorProto) =
+ if hasname(message):
+ writeString(stream, message.name, 1)
+ if hasinput_type(message):
+ writeString(stream, message.input_type, 2)
+ if hasoutput_type(message):
+ writeString(stream, message.output_type, 3)
+ if hasoptions(message):
+ writeMessage(stream, message.options, 4)
+ if hasclient_streaming(message):
+ writeBool(stream, message.client_streaming, 5)
+ if hasserver_streaming(message):
+ writeBool(stream, message.server_streaming, 6)
+
+proc readgoogle_protobuf_MethodDescriptorProto*(stream: ProtobufStream): google_protobuf_MethodDescriptorProto =
+ result = newgoogle_protobuf_MethodDescriptorProto()
+ 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)
+ setname(result, readString(stream))
+ of 2:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setinput_type(result, readString(stream))
+ of 3:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setoutput_type(result, readString(stream))
+ of 4:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ setoptions(result, readgoogle_protobuf_MethodOptions(pbs))
+ of 5:
+ expectWireType(wireType, WireType.Varint)
+ setclient_streaming(result, readBool(stream))
+ of 6:
+ expectWireType(wireType, WireType.Varint)
+ setserver_streaming(result, readBool(stream))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_MethodDescriptorProto): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_MethodDescriptorProto(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_MethodDescriptorProto*(data: string): google_protobuf_MethodDescriptorProto =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_MethodDescriptorProto(pbs)
+
+
+proc newgoogle_protobuf_ServiceDescriptorProto*(): google_protobuf_ServiceDescriptorProto =
+ new(result)
+ result.hasField = initIntSet()
+ result.name = ""
+ result.fmethod = @[]
+ result.options = nil
+
+proc clearname*(message: google_protobuf_ServiceDescriptorProto) =
+ message.name = ""
+ excl(message.hasField, [1])
+
+proc hasname*(message: google_protobuf_ServiceDescriptorProto): bool =
+ result = contains(message.hasField, 1)
+
+proc setname*(message: google_protobuf_ServiceDescriptorProto, value: string) =
+ message.name = value
+ incl(message.hasField, 1)
+
+proc name*(message: google_protobuf_ServiceDescriptorProto): string {.inline.} =
+ message.name
+
+proc `name=`*(message: google_protobuf_ServiceDescriptorProto, value: string) {.inline.} =
+ setname(message, value)
+
+proc clearfmethod*(message: google_protobuf_ServiceDescriptorProto) =
+ message.fmethod = @[]
+ excl(message.hasField, [2])
+
+proc hasfmethod*(message: google_protobuf_ServiceDescriptorProto): bool =
+ result = contains(message.hasField, 2) or (len(message.fmethod) > 0)
+
+proc setfmethod*(message: google_protobuf_ServiceDescriptorProto, value: seq[google_protobuf_MethodDescriptorProto]) =
+ message.fmethod = value
+ incl(message.hasField, 2)
+
+proc addfmethod*(message: google_protobuf_ServiceDescriptorProto, value: google_protobuf_MethodDescriptorProto) =
+ add(message.fmethod, value)
+ incl(message.hasField, 2)
+
+proc fmethod*(message: google_protobuf_ServiceDescriptorProto): seq[google_protobuf_MethodDescriptorProto] {.inline.} =
+ message.fmethod
+
+proc `fmethod=`*(message: google_protobuf_ServiceDescriptorProto, value: seq[google_protobuf_MethodDescriptorProto]) {.inline.} =
+ setfmethod(message, value)
+
+proc clearoptions*(message: google_protobuf_ServiceDescriptorProto) =
+ message.options = nil
+ excl(message.hasField, [3])
+
+proc hasoptions*(message: google_protobuf_ServiceDescriptorProto): bool =
+ result = contains(message.hasField, 3)
+
+proc setoptions*(message: google_protobuf_ServiceDescriptorProto, value: google_protobuf_ServiceOptions) =
+ message.options = value
+ incl(message.hasField, 3)
+
+proc options*(message: google_protobuf_ServiceDescriptorProto): google_protobuf_ServiceOptions {.inline.} =
+ message.options
+
+proc `options=`*(message: google_protobuf_ServiceDescriptorProto, value: google_protobuf_ServiceOptions) {.inline.} =
+ setoptions(message, value)
+
+proc sizeOfgoogle_protobuf_ServiceDescriptorProto*(message: google_protobuf_ServiceDescriptorProto): uint64 =
+ if hasname(message):
+ result = result + sizeOfTag(1, WireType.LengthDelimited)
+ result = result + sizeOfString(message.name)
+ for value in message.fmethod:
+ result = result + sizeOfTag(2, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_MethodDescriptorProto(value))
+ if hasoptions(message):
+ result = result + sizeOfTag(3, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_ServiceOptions(message.options))
+
+proc writegoogle_protobuf_ServiceDescriptorProto*(stream: ProtobufStream, message: google_protobuf_ServiceDescriptorProto) =
+ if hasname(message):
+ writeString(stream, message.name, 1)
+ for value in message.fmethod:
+ writeMessage(stream, value, 2)
+ if hasoptions(message):
+ writeMessage(stream, message.options, 3)
+
+proc readgoogle_protobuf_ServiceDescriptorProto*(stream: ProtobufStream): google_protobuf_ServiceDescriptorProto =
+ result = newgoogle_protobuf_ServiceDescriptorProto()
+ 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)
+ setname(result, readString(stream))
+ of 2:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ addfmethod(result, readgoogle_protobuf_MethodDescriptorProto(pbs))
+ of 3:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ setoptions(result, readgoogle_protobuf_ServiceOptions(pbs))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_ServiceDescriptorProto): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_ServiceDescriptorProto(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_ServiceDescriptorProto*(data: string): google_protobuf_ServiceDescriptorProto =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_ServiceDescriptorProto(pbs)
+
+
+proc newgoogle_protobuf_FileDescriptorProto*(): google_protobuf_FileDescriptorProto =
+ new(result)
+ result.hasField = initIntSet()
+ result.name = ""
+ result.package = ""
+ result.dependency = @[]
+ result.public_dependency = @[]
+ result.weak_dependency = @[]
+ result.message_type = @[]
+ result.enum_type = @[]
+ result.service = @[]
+ result.extension = @[]
+ result.options = nil
+ result.source_code_info = nil
+ result.syntax = ""
+
+proc clearname*(message: google_protobuf_FileDescriptorProto) =
+ message.name = ""
+ excl(message.hasField, [1])
+
+proc hasname*(message: google_protobuf_FileDescriptorProto): bool =
+ result = contains(message.hasField, 1)
+
+proc setname*(message: google_protobuf_FileDescriptorProto, value: string) =
+ message.name = value
+ incl(message.hasField, 1)
+
+proc name*(message: google_protobuf_FileDescriptorProto): string {.inline.} =
+ message.name
+
+proc `name=`*(message: google_protobuf_FileDescriptorProto, value: string) {.inline.} =
+ setname(message, value)
+
+proc clearpackage*(message: google_protobuf_FileDescriptorProto) =
+ message.package = ""
+ excl(message.hasField, [2])
+
+proc haspackage*(message: google_protobuf_FileDescriptorProto): bool =
+ result = contains(message.hasField, 2)
+
+proc setpackage*(message: google_protobuf_FileDescriptorProto, value: string) =
+ message.package = value
+ incl(message.hasField, 2)
+
+proc package*(message: google_protobuf_FileDescriptorProto): string {.inline.} =
+ message.package
+
+proc `package=`*(message: google_protobuf_FileDescriptorProto, value: string) {.inline.} =
+ setpackage(message, value)
+
+proc cleardependency*(message: google_protobuf_FileDescriptorProto) =
+ message.dependency = @[]
+ excl(message.hasField, [3])
+
+proc hasdependency*(message: google_protobuf_FileDescriptorProto): bool =
+ result = contains(message.hasField, 3) or (len(message.dependency) > 0)
+
+proc setdependency*(message: google_protobuf_FileDescriptorProto, value: seq[string]) =
+ message.dependency = value
+ incl(message.hasField, 3)
+
+proc adddependency*(message: google_protobuf_FileDescriptorProto, value: string) =
+ add(message.dependency, value)
+ incl(message.hasField, 3)
+
+proc dependency*(message: google_protobuf_FileDescriptorProto): seq[string] {.inline.} =
+ message.dependency
+
+proc `dependency=`*(message: google_protobuf_FileDescriptorProto, value: seq[string]) {.inline.} =
+ setdependency(message, value)
+
+proc clearpublic_dependency*(message: google_protobuf_FileDescriptorProto) =
+ message.public_dependency = @[]
+ excl(message.hasField, [10])
+
+proc haspublic_dependency*(message: google_protobuf_FileDescriptorProto): bool =
+ result = contains(message.hasField, 10) or (len(message.public_dependency) > 0)
+
+proc setpublic_dependency*(message: google_protobuf_FileDescriptorProto, value: seq[int32]) =
+ message.public_dependency = value
+ incl(message.hasField, 10)
+
+proc addpublic_dependency*(message: google_protobuf_FileDescriptorProto, value: int32) =
+ add(message.public_dependency, value)
+ incl(message.hasField, 10)
+
+proc public_dependency*(message: google_protobuf_FileDescriptorProto): seq[int32] {.inline.} =
+ message.public_dependency
+
+proc `public_dependency=`*(message: google_protobuf_FileDescriptorProto, value: seq[int32]) {.inline.} =
+ setpublic_dependency(message, value)
+
+proc clearweak_dependency*(message: google_protobuf_FileDescriptorProto) =
+ message.weak_dependency = @[]
+ excl(message.hasField, [11])
+
+proc hasweak_dependency*(message: google_protobuf_FileDescriptorProto): bool =
+ result = contains(message.hasField, 11) or (len(message.weak_dependency) > 0)
+
+proc setweak_dependency*(message: google_protobuf_FileDescriptorProto, value: seq[int32]) =
+ message.weak_dependency = value
+ incl(message.hasField, 11)
+
+proc addweak_dependency*(message: google_protobuf_FileDescriptorProto, value: int32) =
+ add(message.weak_dependency, value)
+ incl(message.hasField, 11)
+
+proc weak_dependency*(message: google_protobuf_FileDescriptorProto): seq[int32] {.inline.} =
+ message.weak_dependency
+
+proc `weak_dependency=`*(message: google_protobuf_FileDescriptorProto, value: seq[int32]) {.inline.} =
+ setweak_dependency(message, value)
+
+proc clearmessage_type*(message: google_protobuf_FileDescriptorProto) =
+ message.message_type = @[]
+ excl(message.hasField, [4])
+
+proc hasmessage_type*(message: google_protobuf_FileDescriptorProto): bool =
+ result = contains(message.hasField, 4) or (len(message.message_type) > 0)
+
+proc setmessage_type*(message: google_protobuf_FileDescriptorProto, value: seq[google_protobuf_DescriptorProto]) =
+ message.message_type = value
+ incl(message.hasField, 4)
+
+proc addmessage_type*(message: google_protobuf_FileDescriptorProto, value: google_protobuf_DescriptorProto) =
+ add(message.message_type, value)
+ incl(message.hasField, 4)
+
+proc message_type*(message: google_protobuf_FileDescriptorProto): seq[google_protobuf_DescriptorProto] {.inline.} =
+ message.message_type
+
+proc `message_type=`*(message: google_protobuf_FileDescriptorProto, value: seq[google_protobuf_DescriptorProto]) {.inline.} =
+ setmessage_type(message, value)
+
+proc clearenum_type*(message: google_protobuf_FileDescriptorProto) =
+ message.enum_type = @[]
+ excl(message.hasField, [5])
+
+proc hasenum_type*(message: google_protobuf_FileDescriptorProto): bool =
+ result = contains(message.hasField, 5) or (len(message.enum_type) > 0)
+
+proc setenum_type*(message: google_protobuf_FileDescriptorProto, value: seq[google_protobuf_EnumDescriptorProto]) =
+ message.enum_type = value
+ incl(message.hasField, 5)
+
+proc addenum_type*(message: google_protobuf_FileDescriptorProto, value: google_protobuf_EnumDescriptorProto) =
+ add(message.enum_type, value)
+ incl(message.hasField, 5)
+
+proc enum_type*(message: google_protobuf_FileDescriptorProto): seq[google_protobuf_EnumDescriptorProto] {.inline.} =
+ message.enum_type
+
+proc `enum_type=`*(message: google_protobuf_FileDescriptorProto, value: seq[google_protobuf_EnumDescriptorProto]) {.inline.} =
+ setenum_type(message, value)
+
+proc clearservice*(message: google_protobuf_FileDescriptorProto) =
+ message.service = @[]
+ excl(message.hasField, [6])
+
+proc hasservice*(message: google_protobuf_FileDescriptorProto): bool =
+ result = contains(message.hasField, 6) or (len(message.service) > 0)
+
+proc setservice*(message: google_protobuf_FileDescriptorProto, value: seq[google_protobuf_ServiceDescriptorProto]) =
+ message.service = value
+ incl(message.hasField, 6)
+
+proc addservice*(message: google_protobuf_FileDescriptorProto, value: google_protobuf_ServiceDescriptorProto) =
+ add(message.service, value)
+ incl(message.hasField, 6)
+
+proc service*(message: google_protobuf_FileDescriptorProto): seq[google_protobuf_ServiceDescriptorProto] {.inline.} =
+ message.service
+
+proc `service=`*(message: google_protobuf_FileDescriptorProto, value: seq[google_protobuf_ServiceDescriptorProto]) {.inline.} =
+ setservice(message, value)
+
+proc clearextension*(message: google_protobuf_FileDescriptorProto) =
+ message.extension = @[]
+ excl(message.hasField, [7])
+
+proc hasextension*(message: google_protobuf_FileDescriptorProto): bool =
+ result = contains(message.hasField, 7) or (len(message.extension) > 0)
+
+proc setextension*(message: google_protobuf_FileDescriptorProto, value: seq[google_protobuf_FieldDescriptorProto]) =
+ message.extension = value
+ incl(message.hasField, 7)
+
+proc addextension*(message: google_protobuf_FileDescriptorProto, value: google_protobuf_FieldDescriptorProto) =
+ add(message.extension, value)
+ incl(message.hasField, 7)
+
+proc extension*(message: google_protobuf_FileDescriptorProto): seq[google_protobuf_FieldDescriptorProto] {.inline.} =
+ message.extension
+
+proc `extension=`*(message: google_protobuf_FileDescriptorProto, value: seq[google_protobuf_FieldDescriptorProto]) {.inline.} =
+ setextension(message, value)
+
+proc clearoptions*(message: google_protobuf_FileDescriptorProto) =
+ message.options = nil
+ excl(message.hasField, [8])
+
+proc hasoptions*(message: google_protobuf_FileDescriptorProto): bool =
+ result = contains(message.hasField, 8)
+
+proc setoptions*(message: google_protobuf_FileDescriptorProto, value: google_protobuf_FileOptions) =
+ message.options = value
+ incl(message.hasField, 8)
+
+proc options*(message: google_protobuf_FileDescriptorProto): google_protobuf_FileOptions {.inline.} =
+ message.options
+
+proc `options=`*(message: google_protobuf_FileDescriptorProto, value: google_protobuf_FileOptions) {.inline.} =
+ setoptions(message, value)
+
+proc clearsource_code_info*(message: google_protobuf_FileDescriptorProto) =
+ message.source_code_info = nil
+ excl(message.hasField, [9])
+
+proc hassource_code_info*(message: google_protobuf_FileDescriptorProto): bool =
+ result = contains(message.hasField, 9)
+
+proc setsource_code_info*(message: google_protobuf_FileDescriptorProto, value: google_protobuf_SourceCodeInfo) =
+ message.source_code_info = value
+ incl(message.hasField, 9)
+
+proc source_code_info*(message: google_protobuf_FileDescriptorProto): google_protobuf_SourceCodeInfo {.inline.} =
+ message.source_code_info
+
+proc `source_code_info=`*(message: google_protobuf_FileDescriptorProto, value: google_protobuf_SourceCodeInfo) {.inline.} =
+ setsource_code_info(message, value)
+
+proc clearsyntax*(message: google_protobuf_FileDescriptorProto) =
+ message.syntax = ""
+ excl(message.hasField, [12])
+
+proc hassyntax*(message: google_protobuf_FileDescriptorProto): bool =
+ result = contains(message.hasField, 12)
+
+proc setsyntax*(message: google_protobuf_FileDescriptorProto, value: string) =
+ message.syntax = value
+ incl(message.hasField, 12)
+
+proc syntax*(message: google_protobuf_FileDescriptorProto): string {.inline.} =
+ message.syntax
+
+proc `syntax=`*(message: google_protobuf_FileDescriptorProto, value: string) {.inline.} =
+ setsyntax(message, value)
+
+proc sizeOfgoogle_protobuf_FileDescriptorProto*(message: google_protobuf_FileDescriptorProto): uint64 =
+ if hasname(message):
+ result = result + sizeOfTag(1, WireType.LengthDelimited)
+ result = result + sizeOfString(message.name)
+ if haspackage(message):
+ result = result + sizeOfTag(2, WireType.LengthDelimited)
+ result = result + sizeOfString(message.package)
+ for value in message.dependency:
+ result = result + sizeOfTag(3, WireType.LengthDelimited)
+ result = result + sizeOfString(value)
+ if haspublic_dependency(message):
+ result = result + sizeOfTag(10, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(packedFieldSize(message.public_dependency, FieldType.Int32))
+ if hasweak_dependency(message):
+ result = result + sizeOfTag(11, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(packedFieldSize(message.weak_dependency, FieldType.Int32))
+ for value in message.message_type:
+ result = result + sizeOfTag(4, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_DescriptorProto(value))
+ for value in message.enum_type:
+ result = result + sizeOfTag(5, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_EnumDescriptorProto(value))
+ for value in message.service:
+ result = result + sizeOfTag(6, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_ServiceDescriptorProto(value))
+ for value in message.extension:
+ result = result + sizeOfTag(7, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_FieldDescriptorProto(value))
+ if hasoptions(message):
+ result = result + sizeOfTag(8, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_FileOptions(message.options))
+ if hassource_code_info(message):
+ result = result + sizeOfTag(9, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_SourceCodeInfo(message.source_code_info))
+ if hassyntax(message):
+ result = result + sizeOfTag(12, WireType.LengthDelimited)
+ result = result + sizeOfString(message.syntax)
+
+proc writegoogle_protobuf_FileDescriptorProto*(stream: ProtobufStream, message: google_protobuf_FileDescriptorProto) =
+ if hasname(message):
+ writeString(stream, message.name, 1)
+ if haspackage(message):
+ writeString(stream, message.package, 2)
+ for value in message.dependency:
+ writeString(stream, value, 3)
+ for value in message.public_dependency:
+ writeInt32(stream, value, 10)
+ for value in message.weak_dependency:
+ writeInt32(stream, value, 11)
+ for value in message.message_type:
+ writeMessage(stream, value, 4)
+ for value in message.enum_type:
+ writeMessage(stream, value, 5)
+ for value in message.service:
+ writeMessage(stream, value, 6)
+ for value in message.extension:
+ writeMessage(stream, value, 7)
+ if hasoptions(message):
+ writeMessage(stream, message.options, 8)
+ if hassource_code_info(message):
+ writeMessage(stream, message.source_code_info, 9)
+ if hassyntax(message):
+ writeString(stream, message.syntax, 12)
+
+proc readgoogle_protobuf_FileDescriptorProto*(stream: ProtobufStream): google_protobuf_FileDescriptorProto =
+ result = newgoogle_protobuf_FileDescriptorProto()
+ 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)
+ setname(result, readString(stream))
+ of 2:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setpackage(result, readString(stream))
+ of 3:
+ expectWireType(wireType, WireType.LengthDelimited)
+ adddependency(result, readString(stream))
+ of 10:
+ expectWireType(wireType, WireType.Varint, WireType.LengthDelimited)
+ if wireType == WireType.LengthDelimited:
+ let
+ size = readVarint(stream)
+ start = uint64(getPosition(stream))
+ var consumed = 0'u64
+ while consumed < size:
+ addpublic_dependency(result, readInt32(stream))
+ consumed = uint64(getPosition(stream)) - start
+ if consumed != size:
+ raise newException(Exception, "packed field size mismatch")
+ else:
+ addpublic_dependency(result, readInt32(stream))
+ of 11:
+ expectWireType(wireType, WireType.Varint, WireType.LengthDelimited)
+ if wireType == WireType.LengthDelimited:
+ let
+ size = readVarint(stream)
+ start = uint64(getPosition(stream))
+ var consumed = 0'u64
+ while consumed < size:
+ addweak_dependency(result, readInt32(stream))
+ consumed = uint64(getPosition(stream)) - start
+ if consumed != size:
+ raise newException(Exception, "packed field size mismatch")
+ else:
+ addweak_dependency(result, readInt32(stream))
+ of 4:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ addmessage_type(result, readgoogle_protobuf_DescriptorProto(pbs))
+ of 5:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ addenum_type(result, readgoogle_protobuf_EnumDescriptorProto(pbs))
+ of 6:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ addservice(result, readgoogle_protobuf_ServiceDescriptorProto(pbs))
+ of 7:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ addextension(result, readgoogle_protobuf_FieldDescriptorProto(pbs))
+ of 8:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ setoptions(result, readgoogle_protobuf_FileOptions(pbs))
+ of 9:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ setsource_code_info(result, readgoogle_protobuf_SourceCodeInfo(pbs))
+ of 12:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setsyntax(result, readString(stream))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_FileDescriptorProto): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_FileDescriptorProto(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_FileDescriptorProto*(data: string): google_protobuf_FileDescriptorProto =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_FileDescriptorProto(pbs)
+
+
+proc newgoogle_protobuf_FileDescriptorSet*(): google_protobuf_FileDescriptorSet =
+ new(result)
+ result.hasField = initIntSet()
+ result.file = @[]
+
+proc clearfile*(message: google_protobuf_FileDescriptorSet) =
+ message.file = @[]
+ excl(message.hasField, [1])
+
+proc hasfile*(message: google_protobuf_FileDescriptorSet): bool =
+ result = contains(message.hasField, 1) or (len(message.file) > 0)
+
+proc setfile*(message: google_protobuf_FileDescriptorSet, value: seq[google_protobuf_FileDescriptorProto]) =
+ message.file = value
+ incl(message.hasField, 1)
+
+proc addfile*(message: google_protobuf_FileDescriptorSet, value: google_protobuf_FileDescriptorProto) =
+ add(message.file, value)
+ incl(message.hasField, 1)
+
+proc file*(message: google_protobuf_FileDescriptorSet): seq[google_protobuf_FileDescriptorProto] {.inline.} =
+ message.file
+
+proc `file=`*(message: google_protobuf_FileDescriptorSet, value: seq[google_protobuf_FileDescriptorProto]) {.inline.} =
+ setfile(message, value)
+
+proc sizeOfgoogle_protobuf_FileDescriptorSet*(message: google_protobuf_FileDescriptorSet): uint64 =
+ for value in message.file:
+ result = result + sizeOfTag(1, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_FileDescriptorProto(value))
+
+proc writegoogle_protobuf_FileDescriptorSet*(stream: ProtobufStream, message: google_protobuf_FileDescriptorSet) =
+ for value in message.file:
+ writeMessage(stream, value, 1)
+
+proc readgoogle_protobuf_FileDescriptorSet*(stream: ProtobufStream): google_protobuf_FileDescriptorSet =
+ result = newgoogle_protobuf_FileDescriptorSet()
+ 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)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ addfile(result, readgoogle_protobuf_FileDescriptorProto(pbs))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_FileDescriptorSet): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_FileDescriptorSet(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_FileDescriptorSet*(data: string): google_protobuf_FileDescriptorSet =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_FileDescriptorSet(pbs)
+
+
+proc newgoogle_protobuf_GeneratedCodeInfo_Annotation*(): google_protobuf_GeneratedCodeInfo_Annotation =
+ new(result)
+ result.hasField = initIntSet()
+ result.path = @[]
+ result.source_file = ""
+ result.begin = 0
+ result.fend = 0
+
+proc clearpath*(message: google_protobuf_GeneratedCodeInfo_Annotation) =
+ message.path = @[]
+ excl(message.hasField, [1])
+
+proc haspath*(message: google_protobuf_GeneratedCodeInfo_Annotation): bool =
+ result = contains(message.hasField, 1) or (len(message.path) > 0)
+
+proc setpath*(message: google_protobuf_GeneratedCodeInfo_Annotation, value: seq[int32]) =
+ message.path = value
+ incl(message.hasField, 1)
+
+proc addpath*(message: google_protobuf_GeneratedCodeInfo_Annotation, value: int32) =
+ add(message.path, value)
+ incl(message.hasField, 1)
+
+proc path*(message: google_protobuf_GeneratedCodeInfo_Annotation): seq[int32] {.inline.} =
+ message.path
+
+proc `path=`*(message: google_protobuf_GeneratedCodeInfo_Annotation, value: seq[int32]) {.inline.} =
+ setpath(message, value)
+
+proc clearsource_file*(message: google_protobuf_GeneratedCodeInfo_Annotation) =
+ message.source_file = ""
+ excl(message.hasField, [2])
+
+proc hassource_file*(message: google_protobuf_GeneratedCodeInfo_Annotation): bool =
+ result = contains(message.hasField, 2)
+
+proc setsource_file*(message: google_protobuf_GeneratedCodeInfo_Annotation, value: string) =
+ message.source_file = value
+ incl(message.hasField, 2)
+
+proc source_file*(message: google_protobuf_GeneratedCodeInfo_Annotation): string {.inline.} =
+ message.source_file
+
+proc `source_file=`*(message: google_protobuf_GeneratedCodeInfo_Annotation, value: string) {.inline.} =
+ setsource_file(message, value)
+
+proc clearbegin*(message: google_protobuf_GeneratedCodeInfo_Annotation) =
+ message.begin = 0
+ excl(message.hasField, [3])
+
+proc hasbegin*(message: google_protobuf_GeneratedCodeInfo_Annotation): bool =
+ result = contains(message.hasField, 3)
+
+proc setbegin*(message: google_protobuf_GeneratedCodeInfo_Annotation, value: int32) =
+ message.begin = value
+ incl(message.hasField, 3)
+
+proc begin*(message: google_protobuf_GeneratedCodeInfo_Annotation): int32 {.inline.} =
+ message.begin
+
+proc `begin=`*(message: google_protobuf_GeneratedCodeInfo_Annotation, value: int32) {.inline.} =
+ setbegin(message, value)
+
+proc clearfend*(message: google_protobuf_GeneratedCodeInfo_Annotation) =
+ message.fend = 0
+ excl(message.hasField, [4])
+
+proc hasfend*(message: google_protobuf_GeneratedCodeInfo_Annotation): bool =
+ result = contains(message.hasField, 4)
+
+proc setfend*(message: google_protobuf_GeneratedCodeInfo_Annotation, value: int32) =
+ message.fend = value
+ incl(message.hasField, 4)
+
+proc fend*(message: google_protobuf_GeneratedCodeInfo_Annotation): int32 {.inline.} =
+ message.fend
+
+proc `fend=`*(message: google_protobuf_GeneratedCodeInfo_Annotation, value: int32) {.inline.} =
+ setfend(message, value)
+
+proc sizeOfgoogle_protobuf_GeneratedCodeInfo_Annotation*(message: google_protobuf_GeneratedCodeInfo_Annotation): uint64 =
+ if haspath(message):
+ result = result + sizeOfTag(1, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(packedFieldSize(message.path, FieldType.Int32))
+ if hassource_file(message):
+ result = result + sizeOfTag(2, WireType.LengthDelimited)
+ result = result + sizeOfString(message.source_file)
+ if hasbegin(message):
+ result = result + sizeOfTag(3, WireType.Varint)
+ result = result + sizeOfInt32(message.begin)
+ if hasfend(message):
+ result = result + sizeOfTag(4, WireType.Varint)
+ result = result + sizeOfInt32(message.fend)
+
+proc writegoogle_protobuf_GeneratedCodeInfo_Annotation*(stream: ProtobufStream, message: google_protobuf_GeneratedCodeInfo_Annotation) =
+ if haspath(message):
+ writeTag(stream, 1, WireType.LengthDelimited)
+ writeVarint(stream, packedFieldSize(message.path, FieldType.Int32))
+ for value in message.path:
+ writeInt32(stream, value)
+ if hassource_file(message):
+ writeString(stream, message.source_file, 2)
+ if hasbegin(message):
+ writeInt32(stream, message.begin, 3)
+ if hasfend(message):
+ writeInt32(stream, message.fend, 4)
+
+proc readgoogle_protobuf_GeneratedCodeInfo_Annotation*(stream: ProtobufStream): google_protobuf_GeneratedCodeInfo_Annotation =
+ result = newgoogle_protobuf_GeneratedCodeInfo_Annotation()
+ 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.Varint, WireType.LengthDelimited)
+ if wireType == WireType.LengthDelimited:
+ let
+ size = readVarint(stream)
+ start = uint64(getPosition(stream))
+ var consumed = 0'u64
+ while consumed < size:
+ addpath(result, readInt32(stream))
+ consumed = uint64(getPosition(stream)) - start
+ if consumed != size:
+ raise newException(Exception, "packed field size mismatch")
+ else:
+ addpath(result, readInt32(stream))
+ of 2:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setsource_file(result, readString(stream))
+ of 3:
+ expectWireType(wireType, WireType.Varint)
+ setbegin(result, readInt32(stream))
+ of 4:
+ expectWireType(wireType, WireType.Varint)
+ setfend(result, readInt32(stream))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_GeneratedCodeInfo_Annotation): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_GeneratedCodeInfo_Annotation(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_GeneratedCodeInfo_Annotation*(data: string): google_protobuf_GeneratedCodeInfo_Annotation =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_GeneratedCodeInfo_Annotation(pbs)
+
+
+proc newgoogle_protobuf_GeneratedCodeInfo*(): google_protobuf_GeneratedCodeInfo =
+ new(result)
+ result.hasField = initIntSet()
+ result.annotation = @[]
+
+proc clearannotation*(message: google_protobuf_GeneratedCodeInfo) =
+ message.annotation = @[]
+ excl(message.hasField, [1])
+
+proc hasannotation*(message: google_protobuf_GeneratedCodeInfo): bool =
+ result = contains(message.hasField, 1) or (len(message.annotation) > 0)
+
+proc setannotation*(message: google_protobuf_GeneratedCodeInfo, value: seq[google_protobuf_GeneratedCodeInfo_Annotation]) =
+ message.annotation = value
+ incl(message.hasField, 1)
+
+proc addannotation*(message: google_protobuf_GeneratedCodeInfo, value: google_protobuf_GeneratedCodeInfo_Annotation) =
+ add(message.annotation, value)
+ incl(message.hasField, 1)
+
+proc annotation*(message: google_protobuf_GeneratedCodeInfo): seq[google_protobuf_GeneratedCodeInfo_Annotation] {.inline.} =
+ message.annotation
+
+proc `annotation=`*(message: google_protobuf_GeneratedCodeInfo, value: seq[google_protobuf_GeneratedCodeInfo_Annotation]) {.inline.} =
+ setannotation(message, value)
+
+proc sizeOfgoogle_protobuf_GeneratedCodeInfo*(message: google_protobuf_GeneratedCodeInfo): uint64 =
+ for value in message.annotation:
+ result = result + sizeOfTag(1, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_GeneratedCodeInfo_Annotation(value))
+
+proc writegoogle_protobuf_GeneratedCodeInfo*(stream: ProtobufStream, message: google_protobuf_GeneratedCodeInfo) =
+ for value in message.annotation:
+ writeMessage(stream, value, 1)
+
+proc readgoogle_protobuf_GeneratedCodeInfo*(stream: ProtobufStream): google_protobuf_GeneratedCodeInfo =
+ result = newgoogle_protobuf_GeneratedCodeInfo()
+ 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)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ addannotation(result, readgoogle_protobuf_GeneratedCodeInfo_Annotation(pbs))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_GeneratedCodeInfo): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_GeneratedCodeInfo(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_GeneratedCodeInfo*(data: string): google_protobuf_GeneratedCodeInfo =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_GeneratedCodeInfo(pbs)
+
+
diff --git a/src/nimpb_buildpkg/gen.nim b/src/nimpb_buildpkg/gen.nim
deleted file mode 100644
index e954d03..0000000
--- a/src/nimpb_buildpkg/gen.nim
+++ /dev/null
@@ -1,655 +0,0 @@
-import macros
-import strutils
-
-import nimpb/nimpb
-
-type
- MessageDesc* = object
- name*: string
- fields*: seq[FieldDesc]
- oneofs*: seq[string]
-
- FieldLabel* {.pure.} = enum
- Optional = 1
- Required
- Repeated
-
- FieldDesc* = object
- name*: string
- number*: int
- ftype*: FieldType
- label*: FieldLabel
- typeName*: string
- packed*: bool
- oneofIdx*: int
-
- EnumDesc* = object
- name*: string
- values*: seq[EnumValueDesc]
-
- EnumValueDesc* = object
- name*: string
- number*: int
-
-proc findColonExpr(parent: NimNode, s: string): NimNode =
- for child in parent:
- if child.kind != nnkExprColonExpr:
- continue
-
- if $child[0] == s:
- return child
-
-proc getMessageName(desc: NimNode): string =
- let node = findColonExpr(desc, "name")
- result = $node[1]
-
-iterator fields(desc: NimNode): NimNode =
- let node = findColonExpr(desc, "fields")
- for field in node[1]:
- yield field
-
-proc isRepeated(field: NimNode): bool =
- let node = findColonExpr(field, "label")
- let value = FieldLabel(node[1].intVal)
- result = value == FieldLabel.Repeated
-
-proc isPacked(field: NimNode): bool =
- let node = findColonExpr(field, "packed")
- result = bool(node[1].intVal)
-
-proc getFieldType(field: NimNode): FieldType =
- let node = findColonExpr(field, "ftype")
- result = FieldType(node[1].intVal)
-
-proc isMessage(field: NimNode): bool =
- result = getFieldType(field) == FieldType.Message
-
-proc isEnum(field: NimNode): bool =
- result = getFieldType(field) == FieldType.Enum
-
-proc getFieldTypeName(field: NimNode): string =
- let node = findColonExpr(field, "typeName")
- result = $node[1]
-
-proc getFieldTypeAsString(field: NimNode): string =
- if isMessage(field) or isEnum(field):
- result = getFieldTypeName(field)
- else:
- case getFieldType(field)
- of FieldType.Double: result = "float64"
- of FieldType.Float: result = "float32"
- of FieldType.Int64: result = "int64"
- of FieldType.UInt64: result = "uint64"
- of FieldType.Int32: result = "int32"
- of FieldType.Fixed64: result = "uint64"
- of FieldType.Fixed32: result = "uint32"
- of FieldType.Bool: result = "bool"
- of FieldType.String: result = "string"
- of FieldType.Bytes: result = "bytes"
- of FieldType.UInt32: result = "uint32"
- of FieldType.SFixed32: result = "int32"
- of FieldType.SFixed64: result = "int64"
- of FieldType.SInt32: result = "int32"
- of FieldType.SInt64: result = "int64"
- else: result = "AYBABTU"
-
-proc getFullFieldType(field: NimNode): NimNode =
- result = ident(getFieldTypeAsString(field))
- if isRepeated(field):
- result = nnkBracketExpr.newTree(ident("seq"), result)
-
-proc getFieldName(field: NimNode): string =
- let node = findColonExpr(field, "name")
- result = $node[1]
-
-proc getFieldNumber(field: NimNode): int =
- result = int(findColonExpr(field, "number")[1].intVal)
-
-proc defaultValue(field: NimNode): NimNode =
- # TODO: check if there is a default value specified for the field
-
- if isRepeated(field):
- return nnkPrefix.newTree(newIdentNode("@"), nnkBracket.newTree())
-
- case getFieldType(field)
- of FieldType.Double: result = newLit(0.0'f64)
- of FieldType.Float: result = newLit(0.0'f32)
- of FieldType.Int64: result = newLit(0'i64)
- of FieldType.UInt64: result = newLit(0'u64)
- of FieldType.Int32: result = newLit(0'i32)
- of FieldType.Fixed64: result = newLit(0'u64)
- of FieldType.Fixed32: result = newLit(0'u32)
- of FieldType.Bool: result = newLit(false)
- of FieldType.String: result = newLit("")
- of FieldType.Group: result = newLit("NOTIMPLEMENTED")
- of FieldType.Message: result = newCall(ident("new" & getFieldTypeAsString(field)))
- of FieldType.Bytes: result = newCall(ident("bytes"), newLit(""))
- of FieldType.UInt32: result = newLit(0'u32)
- of FieldType.Enum:
- let
- descId = ident(getFieldTypeAsString(field) & "Desc")
- nameId = ident(getFieldTypeAsString(field))
- result = quote do:
- `nameId`(`descId`.values[0].number)
- of FieldType.SFixed32: result = newLit(0'u32)
- of FieldType.SFixed64: result = newLit(0'u32)
- of FieldType.SInt32: result = newLit(0)
- of FieldType.SInt64: result = newLit(0)
-
-proc wiretype(field: NimNode): WireType =
- result = wiretype(getFieldType(field))
-
-# TODO: maybe not the best name for this
-proc getFieldNameAST(objname: NimNode, field: NimNode, oneof: string): NimNode =
- result =
- if oneof != "":
- newDotExpr(newDotExpr(objname, ident(oneof)), ident(getFieldName(field)))
- else:
- newDotExpr(objname, ident(getFieldName(field)))
-
-proc fieldInitializer(objname: NimNode, field: NimNode, oneof: string): NimNode =
- result = nnkAsgn.newTree(
- getFieldNameAST(objname, field, oneof),
- defaultValue(field)
- )
-
-proc oneofIndex(field: NimNode): int =
- let node = findColonExpr(field, "oneofIdx")
- if node == nil:
- result = -1
- else:
- result = int(node[1].intVal)
-
-proc oneofName(message, field: NimNode): string =
- let index = oneofIndex(field)
-
- if index == -1:
- return ""
-
- let oneofs = findColonExpr(message, "oneofs")[1]
-
- result = $oneofs[index]
-
-iterator oneofFields(message: NimNode, index: int): NimNode =
- if index != -1:
- for field in fields(message):
- if oneofIndex(field) == index:
- yield field
-
-proc generateOneofFields*(desc: NimNode, typeSection: NimNode) =
- let
- oneofs = findColonExpr(desc, "oneofs")[1]
- messageName = getMessageName(desc)
-
- for index, oneof in oneofs:
- let reclist = nnkRecList.newTree()
-
- for field in oneofFields(desc, index):
- let ftype = getFullFieldType(field)
- let name = ident(getFieldName(field))
-
- add(reclist, newIdentDefs(postfix(name, "*"), ftype))
-
- let typedef = nnkTypeDef.newTree(
- nnkPragmaExpr.newTree(
- postfix(ident(messageName & $oneof), "*"),
- nnkPragma.newTree(
- ident("union")
- )
- ),
- newEmptyNode(),
- nnkObjectTy.newTree(
- newEmptyNode(),
- newEmptyNode(),
- reclist
- )
- )
-
- add(typeSection, typedef)
-
-macro generateMessageType*(desc: typed): typed =
- let
- impl = getImpl(symbol(desc))
- typeSection = nnkTypeSection.newTree()
- typedef = nnkTypeDef.newTree()
- reclist = nnkRecList.newTree()
- oneofs = findColonExpr(impl, "oneofs")[1]
-
- let name = getMessageName(impl)
-
- let typedefRef = nnkTypeDef.newTree(postfix(newIdentNode(name), "*"), newEmptyNode(),
- nnkRefTy.newTree(newIdentNode(name & "Obj")))
- add(typeSection, typedefRef)
-
- add(typeSection, typedef)
-
- add(typedef, postfix(ident(name & "Obj"), "*"))
- add(typedef, newEmptyNode())
- add(typedef, nnkObjectTy.newTree(newEmptyNode(), newEmptyNode(), reclist))
-
- for field in fields(impl):
- let ftype = getFullFieldType(field)
- let name = ident(getFieldName(field))
- if oneofIndex(field) == -1:
- add(reclist, newIdentDefs(postfix(name, "*"), ftype))
-
- for oneof in oneofs:
- add(reclist, newIdentDefs(postfix(ident($oneof), "*"),
- ident(name & $oneof)))
-
- add(reclist, nnkIdentDefs.newTree(
- ident("hasField"), ident("IntSet"), newEmptyNode()))
-
- generateOneofFields(impl, typeSection)
-
- result = newStmtList()
- add(result, typeSection)
-
- when defined(debug):
- hint(repr(result))
-
-proc generateNewMessageProc(desc: NimNode): NimNode =
- let
- body = newStmtList(
- newCall(ident("new"), ident("result"))
- )
- resultId = ident("result")
-
- for field in fields(desc):
- let oneofName = oneofName(desc, field)
- add(body, fieldInitializer(resultId, field, oneofName))
-
- add(body, newAssignment(newDotExpr(resultId, ident("hasField")),
- newCall(ident("initIntSet"))))
-
- result = newProc(postfix(ident("new" & getMessageName(desc)), "*"),
- @[ident(getMessageName(desc))],
- body)
-
-proc fieldProcName(prefix: string, field: NimNode): string =
- result = prefix & capitalizeAscii(getFieldName(field))
-
-proc fieldProcIdent(prefix: string, field: NimNode): NimNode =
- result = postfix(ident(fieldProcName(prefix, field)), "*")
-
-proc generateClearFieldProc(desc, field: NimNode): NimNode =
- let
- messageId = ident("message")
- fname = getFieldNameAST(messageId, field, oneofName(desc, field))
- defvalue = defaultValue(field)
- hasField = newDotExpr(messageId, ident("hasField"))
- number = getFieldNumber(field)
- procName = fieldProcIdent("clear", field)
- mtype = ident(getMessageName(desc))
-
- result = quote do:
- proc `procName`(`messageId`: `mtype`) =
- `fname` = `defvalue`
- excl(`hasfield`, `number`)
-
- # When clearing a field that is contained in a oneof, we should also clear
- # the other fields.
- for sibling in oneofFields(desc, oneofIndex(field)):
- if sibling == field:
- continue
- let
- number = getFieldNumber(sibling)
- exclNode = quote do:
- excl(`hasField`, `number`)
- add(body(result), exclNode)
-
-proc generateHasFieldProc(desc, field: NimNode): NimNode =
- let
- messageId = ident("message")
- hasField = newDotExpr(messageId, ident("hasField"))
- number = getFieldNumber(field)
- mtype = ident(getMessageName(desc))
- procName = fieldProcIdent("has", field)
-
- result = quote do:
- proc `procName`(`messageId`: `mtype`): bool =
- contains(`hasfield`, `number`)
-
-proc generateSetFieldProc(desc, field: NimNode): NimNode =
- let
- messageId = ident("message")
- hasField = newDotExpr(messageId, ident("hasField"))
- number = getFieldNumber(field)
- valueId = ident("value")
- fname = getFieldNameAST(messageId, field, oneofName(desc, field))
- procName = fieldProcIdent("set", field)
- mtype = ident(getMessageName(desc))
- ftype = getFullFieldType(field)
-
- result = quote do:
- proc `procName`(`messageId`: `mtype`, `valueId`: `ftype`) =
- `fname` = `valueId`
- incl(`hasfield`, `number`)
-
- # When setting a field that is in a oneof, we need to unset the other fields
- for sibling in oneofFields(desc, oneofIndex(field)):
- if sibling == field:
- continue
- let
- number = getFieldNumber(sibling)
- exclNode = quote do:
- excl(`hasField`, `number`)
- add(body(result), exclNode)
-
-proc generateAddToFieldProc(desc, field: NimNode): NimNode =
- let
- procName = fieldProcIdent("add", field)
- messageId = ident("message")
- mtype = ident(getMessageName(desc))
- valueId = ident("value")
- ftype = ident(getFieldTypeAsString(field))
- hasField = newDotExpr(messageId, ident("hasField"))
- number = getFieldNumber(field)
- fname = newDotExpr(messageId, ident(getFieldName(field)))
-
- result = quote do:
- proc `procName`(`messageId`: `mtype`, `valueId`: `ftype`) =
- add(`fname`, `valueId`)
- incl(`hasfield`, `number`)
-
-proc ident(wt: WireType): NimNode =
- result = newDotExpr(ident("WireType"), ident($wt))
-
-proc genWriteField(message, field: NimNode): NimNode =
- result = newStmtList()
-
- let
- number = getFieldNumber(field)
- writer = ident("write" & getFieldTypeAsString(field))
- messageId = ident("message")
- fname = getFieldNameAST(messageId, field, oneofName(message, field))
- wiretype = ident(wiretype(field))
- sizeproc = ident("sizeOf" & getFieldTypeAsString(field))
- hasproc = ident(fieldProcName("has", field))
-
- if not isRepeated(field):
- result.add quote do:
- if `hasproc`(message):
- writeTag(stream, `number`, `wiretype`)
- `writer`(stream, `fname`)
- if isMessage(field):
- insert(result[0][0][1], 1, quote do:
- writeVarint(stream, `sizeproc`(`fname`))
- )
- else:
- let valueId = ident("value")
- if isPacked(field):
- result.add quote do:
- writeTag(stream, `number`, WireType.LengthDelimited)
- writeVarInt(stream, packedFieldSize(`fname`, `wiretype`))
- for `valueId` in `fname`:
- `writer`(stream, `valueId`)
- else:
- result.add quote do:
- for `valueId` in `fname`:
- writeTag(stream, `number`, `wiretype`)
- `writer`(stream, `valueId`)
- if isMessage(field):
- insert(result[^1][^1], 1, quote do:
- writeVarint(stream, `sizeproc`(`valueId`))
- )
-
-proc generateWriteMessageProc(desc: NimNode): NimNode =
- let
- messageId = ident("message")
- mtype = ident(getMessageName(desc))
- procName = postfix(ident("write" & getMessageName(desc)), "*")
- body = newStmtList()
- stream = ident("stream")
- sizeproc = postfix(ident("sizeOf" & getMessageName(desc)), "*")
-
- for field in fields(desc):
- add(body, genWriteField(desc, field))
-
- result = quote do:
- proc `sizeproc`(`messageId`: `mtype`): uint64
-
- proc `procName`(`stream`: ProtobufStream, `messageId`: `mtype`) =
- `body`
-
-proc generateReadMessageProc(desc: NimNode): NimNode =
- let
- procName = postfix(ident("read" & getMessageName(desc)), "*")
- newproc = ident("new" & getMessageName(desc))
- streamId = ident("stream")
- mtype = ident(getMessageName(desc))
- tagId = ident("tag")
- wiretypeId = ident("wiretype")
- resultId = ident("result")
-
- result = quote do:
- proc `procName`(`streamId`: ProtobufStream): `mtype` =
- `resultId` = `newproc`()
- while not atEnd(stream):
- let
- `tagId` = readTag(`streamId`)
- `wiretypeId` = wireType(`tagId`)
- case fieldNumber(`tagId`)
- else:
- skipField(`streamId`, `wiretypeId`)
-
- let caseNode = body(result)[1][1][1]
-
- # TODO: check wiretypes and fail if it doesn't match
- for field in fields(desc):
- let
- number = getFieldNumber(field)
- reader = ident("read" & getFieldTypeAsString(field))
- setproc =
- if isRepeated(field):
- ident("add" & capitalizeAscii(getFieldName(field)))
- else:
- ident("set" & capitalizeAscii(getFieldName(field)))
- if isRepeated(field):
- if isNumeric(getFieldType(field)):
- insert(caseNode, 1, nnkOfBranch.newTree(newLit(number), quote do:
- if `wiretypeId` == WireType.LengthDelimited:
- let
- size = readVarint(stream)
- start = getPosition(stream).uint64
- var consumed = 0'u64
- while consumed < size:
- `setproc`(`resultId`, `reader`(stream))
- consumed = getPosition(stream).uint64 - start
- if consumed != size:
- raise newException(Exception, "packed field size mismatch")
- else:
- `setproc`(`resultId`, `reader`(stream))
- ))
- elif isMessage(field):
- insert(caseNode, 1, nnkOfBranch.newTree(newLit(number), quote do:
- let size = readVarint(stream)
- let data = readStr(stream, int(size))
- let stream2 = newProtobufStream(newStringStream(data))
- `setproc`(`resultId`, `reader`(stream2))
- ))
- else:
- insert(caseNode, 1, nnkOfBranch.newTree(newLit(number), quote do:
- `setproc`(`resultId`, `reader`(stream))
- ))
- else:
- if isMessage(field):
- insert(caseNode, 1, nnkOfBranch.newTree(newLit(number), quote do:
- let size = readVarint(stream)
- let data = readStr(stream, int(size))
- let stream2 = newProtobufStream(newStringStream(data))
- `setproc`(`resultId`, `reader`(stream2))
- ))
- else:
- insert(caseNode, 1, nnkOfBranch.newTree(newLit(number), quote do:
- `setproc`(`resultId`, `reader`(stream))
- ))
-
-proc generateSizeOfMessageProc(desc: NimNode): NimNode =
- let
- name = getMessageName(desc)
- body = newStmtList()
- messageId = ident("message")
- resultId = ident("result")
- procName = postfix(ident("sizeOf" & getMessageName(desc)), "*")
- mtype = ident(getMessageName(desc))
-
- result = quote do:
- proc `procName`(`messageId`: `mtype`): uint64 =
- `resultId` = 0
-
- let procBody = body(result)
-
- for field in fields(desc):
- let
- hasproc = ident(fieldProcName("has", field))
- sizeofproc = ident("sizeOf" & getFieldTypeAsString(field))
- fname = getFieldNameAST(messageId, field, oneofName(desc, field))
- number = getFieldNumber(field)
- wiretype = ident(wiretype(field))
-
- # TODO: packed
- if isRepeated(field):
- if isPacked(field):
- procBody.add quote do:
- if `hasproc`(`messageId`):
- let
- tagSize = sizeOfUint32(uint32(makeTag(`number`, WireType.LengthDelimited)))
- dataSize = packedFieldSize(`fname`, `wiretype`)
- sizeOfSize = sizeOfUint64(dataSize)
- `resultId` = tagSize + dataSize + sizeOfSize
- else:
- procBody.add quote do:
- for value in `fname`:
- let
- sizeOfField = `sizeofproc`(value)
- tagSize = sizeOfUint32(uint32(makeTag(`number`, `wiretype`)))
- `resultId` = `resultId` +
- sizeOfField +
- sizeOfUint64(sizeOfField) +
- tagSize
- else:
- let sizeOfFieldId = ident("sizeOfField")
-
- procBody.add quote do:
- if `hasproc`(`messageId`):
- let
- `sizeOfFieldId` = `sizeofproc`(`fname`)
- tagSize = sizeOfUint32(uint32(makeTag(`number`, `wiretype`)))
- `resultId` = `resultId` + sizeOfField + tagSize
-
- if isMessage(field):
- # For messages we need to include the size of the encoded size
- let asgn = procBody[^1][0][1][1]
- asgn[1] = infix(asgn[1], "+", newCall(ident("sizeOfUint64"),
- sizeOfFieldId))
-
-proc generateSerializeProc(desc: NimNode): NimNode =
- let
- mtype = ident(getMessageName(desc))
- procName = postfix(ident("serialize"), "*")
- writer = ident("write" & getMessageName(desc))
- resultId = ident("result")
-
- result = quote do:
- proc `procName`(message: `mtype`): string =
- let
- ss = newStringStream()
- pbs = newProtobufStream(ss)
- `writer`(pbs, message)
- `resultId` = ss.data
-
-proc generateDeserializeProc(desc: NimNode): NimNode =
- let
- mtype = ident(getMessageName(desc))
- procName = postfix(ident("new" & getMessageName(desc)), "*")
- reader = ident("read" & getMessageName(desc))
- resultId = ident("result")
-
- result = quote do:
- proc `procName`(data: string): `mtype` =
- let
- ss = newStringStream(data)
- pbs = newProtobufStream(ss)
- `resultId` = `reader`(pbs)
-
-macro generateMessageProcs*(x: typed): typed =
- let
- desc = getImpl(symbol(x))
-
- result = newStmtList(
- generateNewMessageProc(desc),
- )
-
- for field in fields(desc):
- add(result, generateClearFieldProc(desc, field))
- add(result, generateHasFieldProc(desc, field))
- add(result, generateSetFieldProc(desc, field))
-
- if isRepeated(field):
- add(result, generateAddToFieldProc(desc, field))
-
- add(result, generateWriteMessageProc(desc))
- add(result, generateReadMessageProc(desc))
- add(result, generateSizeOfMessageProc(desc))
- add(result, generateSerializeProc(desc))
- add(result, generateDeserializeProc(desc))
-
- when defined(debug):
- hint(repr(result))
-
-macro generateEnumType*(x: typed): typed =
- let
- impl = getImpl(symbol(x))
- name = $findColonExpr(impl, "name")[1]
- values = findColonExpr(impl, "values")[1]
-
- let enumTy = nnkEnumTy.newTree(newEmptyNode())
-
- for valueNode in values:
- let
- name = $findColonExpr(valueNode, "name")[1]
- number = findColonExpr(valueNode, "number")[1]
-
- add(enumTy, nnkEnumFieldDef.newTree(ident(name), number))
-
- result = newStmtList(nnkTypeSection.newTree(
- nnkTypeDef.newTree(
- nnkPragmaExpr.newTree(
- postfix(ident(name), "*"),
- nnkPragma.newTree(ident("pure"))
- ),
- newEmptyNode(),
- enumTy
- )
- ))
-
- when defined(debug):
- hint(repr(result))
-
-macro generateEnumProcs*(x: typed): typed =
- let
- impl = getImpl(symbol(x))
- name = $findColonExpr(impl, "name")[1]
- nameId = ident(name)
- values = findColonExpr(impl, "values")[1]
- readProc = postfix(ident("read" & name), "*")
- writeProc = postfix(ident("write" & name), "*")
- sizeProc = postfix(ident("sizeOf" & name), "*")
- resultId = ident("result")
-
- result = newStmtList()
-
- add(result, quote do:
- proc `readProc`(stream: ProtobufStream): `nameId` =
- `resultId` = `nameId`(readUInt32(stream))
-
- proc `writeProc`(stream: ProtobufStream, value: `nameId`) =
- writeEnum(stream, value)
-
- proc `sizeProc`(value: `nameId`): uint64 =
- `resultId` = sizeOfUInt32(uint32(value))
- )
-
- when defined(debug):
- hint(repr(result))
diff --git a/src/nimpb_buildpkg/plugin.nim b/src/nimpb_buildpkg/plugin.nim
index bf50559..5ecfe1b 100644
--- a/src/nimpb_buildpkg/plugin.nim
+++ b/src/nimpb_buildpkg/plugin.nim
@@ -12,8 +12,6 @@ import plugin_pb
import nimpb/nimpb
-import gen
-
type
Names = distinct seq[string]
@@ -24,8 +22,8 @@ type
Field = ref object
number: int
name: string
- label: FieldDescriptorProto_Label
- ftype: FieldDescriptorProto_Type
+ label: google_protobuf_FieldDescriptorProto_Label
+ ftype: google_protobuf_FieldDescriptorProto_Type
typeName: string
packed: bool
oneof: Oneof
@@ -46,7 +44,7 @@ type
data: string
ProtoFile = ref object
- fdesc: FileDescriptorProto
+ fdesc: google_protobuf_FileDescriptorProto
enums: seq[Enum]
messages: seq[Message]
syntax: Syntax
@@ -80,23 +78,23 @@ proc `&`(names: Names, s: string): Names =
add(result, s)
proc isRepeated(field: Field): bool =
- result = field.label == FieldDescriptorProtoLabel.LabelRepeated
+ result = field.label == google_protobuf_FieldDescriptorProtoLabel.LabelRepeated
proc isMessage(field: Field): bool =
- result = field.ftype == FieldDescriptorProtoType.TypeMessage
+ result = field.ftype == google_protobuf_FieldDescriptorProtoType.TypeMessage
proc isEnum(field: Field): bool =
- result = field.ftype == FieldDescriptorProtoType.TypeEnum
+ result = field.ftype == google_protobuf_FieldDescriptorProtoType.TypeEnum
proc isNumeric(field: Field): bool =
case field.ftype
- of FieldDescriptorProtoType.TypeDouble, FieldDescriptorProtoType.TypeFloat,
- FieldDescriptorProtoType.TypeInt64, FieldDescriptorProtoType.TypeUInt64,
- FieldDescriptorProtoType.TypeInt32, FieldDescriptorProtoType.TypeFixed64,
- FieldDescriptorProtoType.TypeFixed32, FieldDescriptorProtoType.TypeBool,
- FieldDescriptorProtoType.TypeUInt32, FieldDescriptorProtoType.TypeEnum,
- FieldDescriptorProtoType.TypeSFixed32, FieldDescriptorProtoType.TypeSFixed64,
- FieldDescriptorProtoType.TypeSInt32, FieldDescriptorProtoType.TypeSInt64:
+ of google_protobuf_FieldDescriptorProtoType.TypeDouble, google_protobuf_FieldDescriptorProtoType.TypeFloat,
+ google_protobuf_FieldDescriptorProtoType.TypeInt64, google_protobuf_FieldDescriptorProtoType.TypeUInt64,
+ google_protobuf_FieldDescriptorProtoType.TypeInt32, google_protobuf_FieldDescriptorProtoType.TypeFixed64,
+ google_protobuf_FieldDescriptorProtoType.TypeFixed32, google_protobuf_FieldDescriptorProtoType.TypeBool,
+ google_protobuf_FieldDescriptorProtoType.TypeUInt32, google_protobuf_FieldDescriptorProtoType.TypeEnum,
+ google_protobuf_FieldDescriptorProtoType.TypeSFixed32, google_protobuf_FieldDescriptorProtoType.TypeSFixed64,
+ google_protobuf_FieldDescriptorProtoType.TypeSInt32, google_protobuf_FieldDescriptorProtoType.TypeSInt64:
result = true
else: discard
@@ -108,24 +106,24 @@ proc isMapEntry(field: Field): bool =
proc nimTypeName(field: Field): string =
case field.ftype
- of FieldDescriptorProtoType.TypeDouble: result = "float64"
- of FieldDescriptorProtoType.TypeFloat: result = "float32"
- of FieldDescriptorProtoType.TypeInt64: result = "int64"
- of FieldDescriptorProtoType.TypeUInt64: result = "uint64"
- of FieldDescriptorProtoType.TypeInt32: result = "int32"
- of FieldDescriptorProtoType.TypeFixed64: result = "uint64"
- of FieldDescriptorProtoType.TypeFixed32: result = "uint32"
- of FieldDescriptorProtoType.TypeBool: result = "bool"
- of FieldDescriptorProtoType.TypeString: result = "string"
- of FieldDescriptorProtoType.TypeGroup: result = ""
- of FieldDescriptorProtoType.TypeMessage: result = field.typeName
- of FieldDescriptorProtoType.TypeBytes: result = "bytes"
- of FieldDescriptorProtoType.TypeUInt32: result = "uint32"
- of FieldDescriptorProtoType.TypeEnum: result = field.typeName
- of FieldDescriptorProtoType.TypeSFixed32: result = "int32"
- of FieldDescriptorProtoType.TypeSFixed64: result = "int64"
- of FieldDescriptorProtoType.TypeSInt32: result = "int32"
- of FieldDescriptorProtoType.TypeSInt64: result = "int64"
+ of google_protobuf_FieldDescriptorProtoType.TypeDouble: result = "float64"
+ of google_protobuf_FieldDescriptorProtoType.TypeFloat: result = "float32"
+ of google_protobuf_FieldDescriptorProtoType.TypeInt64: result = "int64"
+ of google_protobuf_FieldDescriptorProtoType.TypeUInt64: result = "uint64"
+ of google_protobuf_FieldDescriptorProtoType.TypeInt32: result = "int32"
+ of google_protobuf_FieldDescriptorProtoType.TypeFixed64: result = "uint64"
+ of google_protobuf_FieldDescriptorProtoType.TypeFixed32: result = "uint32"
+ of google_protobuf_FieldDescriptorProtoType.TypeBool: result = "bool"
+ of google_protobuf_FieldDescriptorProtoType.TypeString: result = "string"
+ of google_protobuf_FieldDescriptorProtoType.TypeGroup: result = ""
+ of google_protobuf_FieldDescriptorProtoType.TypeMessage: result = field.typeName
+ of google_protobuf_FieldDescriptorProtoType.TypeBytes: result = "bytes"
+ of google_protobuf_FieldDescriptorProtoType.TypeUInt32: result = "uint32"
+ of google_protobuf_FieldDescriptorProtoType.TypeEnum: result = field.typeName
+ of google_protobuf_FieldDescriptorProtoType.TypeSFixed32: result = "int32"
+ of google_protobuf_FieldDescriptorProtoType.TypeSFixed64: result = "int64"
+ of google_protobuf_FieldDescriptorProtoType.TypeSInt32: result = "int32"
+ of google_protobuf_FieldDescriptorProtoType.TypeSInt64: result = "int64"
proc mapKeyType(field: Field): string =
for f in field.mapEntry.fields:
@@ -137,26 +135,26 @@ proc mapValueType(field: Field): string =
if f.name == "value":
return f.nimTypeName
-proc `$`(ft: FieldDescriptorProtoType): string =
+proc `$`(ft: google_protobuf_FieldDescriptorProtoType): string =
case ft
- of FieldDescriptorProtoType.TypeDouble: result = "Double"
- of FieldDescriptorProtoType.TypeFloat: result = "Float"
- of FieldDescriptorProtoType.TypeInt64: result = "Int64"
- of FieldDescriptorProtoType.TypeUInt64: result = "UInt64"
- of FieldDescriptorProtoType.TypeInt32: result = "Int32"
- of FieldDescriptorProtoType.TypeFixed64: result = "Fixed64"
- of FieldDescriptorProtoType.TypeFixed32: result = "Fixed32"
- of FieldDescriptorProtoType.TypeBool: result = "Bool"
- of FieldDescriptorProtoType.TypeString: result = "String"
- of FieldDescriptorProtoType.TypeGroup: result = "Group"
- of FieldDescriptorProtoType.TypeMessage: result = "Message"
- of FieldDescriptorProtoType.TypeBytes: result = "Bytes"
- of FieldDescriptorProtoType.TypeUInt32: result = "UInt32"
- of FieldDescriptorProtoType.TypeEnum: result = "Enum"
- of FieldDescriptorProtoType.TypeSFixed32: result = "SFixed32"
- of FieldDescriptorProtoType.TypeSFixed64: result = "SFixed64"
- of FieldDescriptorProtoType.TypeSInt32: result = "SInt32"
- of FieldDescriptorProtoType.TypeSInt64: result = "SInt64"
+ of google_protobuf_FieldDescriptorProtoType.TypeDouble: result = "Double"
+ of google_protobuf_FieldDescriptorProtoType.TypeFloat: result = "Float"
+ of google_protobuf_FieldDescriptorProtoType.TypeInt64: result = "Int64"
+ of google_protobuf_FieldDescriptorProtoType.TypeUInt64: result = "UInt64"
+ of google_protobuf_FieldDescriptorProtoType.TypeInt32: result = "Int32"
+ of google_protobuf_FieldDescriptorProtoType.TypeFixed64: result = "Fixed64"
+ of google_protobuf_FieldDescriptorProtoType.TypeFixed32: result = "Fixed32"
+ of google_protobuf_FieldDescriptorProtoType.TypeBool: result = "Bool"
+ of google_protobuf_FieldDescriptorProtoType.TypeString: result = "String"
+ of google_protobuf_FieldDescriptorProtoType.TypeGroup: result = "Group"
+ of google_protobuf_FieldDescriptorProtoType.TypeMessage: result = "Message"
+ of google_protobuf_FieldDescriptorProtoType.TypeBytes: result = "Bytes"
+ of google_protobuf_FieldDescriptorProtoType.TypeUInt32: result = "UInt32"
+ of google_protobuf_FieldDescriptorProtoType.TypeEnum: result = "Enum"
+ of google_protobuf_FieldDescriptorProtoType.TypeSFixed32: result = "SFixed32"
+ of google_protobuf_FieldDescriptorProtoType.TypeSFixed64: result = "SFixed64"
+ of google_protobuf_FieldDescriptorProtoType.TypeSInt32: result = "SInt32"
+ of google_protobuf_FieldDescriptorProtoType.TypeSInt64: result = "SInt64"
proc defaultValue(field: Field): string =
if isMapEntry(field):
@@ -165,46 +163,46 @@ proc defaultValue(field: Field): string =
return "@[]"
case field.ftype
- of FieldDescriptorProtoType.TypeDouble: result = "0"
- of FieldDescriptorProtoType.TypeFloat: result = "0"
- of FieldDescriptorProtoType.TypeInt64: result = "0"
- of FieldDescriptorProtoType.TypeUInt64: result = "0"
- of FieldDescriptorProtoType.TypeInt32: result = "0"
- of FieldDescriptorProtoType.TypeFixed64: result = "0"
- of FieldDescriptorProtoType.TypeFixed32: result = "0"
- of FieldDescriptorProtoType.TypeBool: result = "false"
- of FieldDescriptorProtoType.TypeString: result = "\"\""
- of FieldDescriptorProtoType.TypeGroup: result = ""
- of FieldDescriptorProtoType.TypeMessage: result = "nil"
- of FieldDescriptorProtoType.TypeBytes: result = "bytes(\"\")"
- of FieldDescriptorProtoType.TypeUInt32: result = "0"
- of FieldDescriptorProtoType.TypeEnum: result = &"{field.typeName}(0)"
- of FieldDescriptorProtoType.TypeSFixed32: result = "0"
- of FieldDescriptorProtoType.TypeSFixed64: result = "0"
- of FieldDescriptorProtoType.TypeSInt32: result = "0"
- of FieldDescriptorProtoType.TypeSInt64: result = "0"
+ of google_protobuf_FieldDescriptorProtoType.TypeDouble: result = "0"
+ of google_protobuf_FieldDescriptorProtoType.TypeFloat: result = "0"
+ of google_protobuf_FieldDescriptorProtoType.TypeInt64: result = "0"
+ of google_protobuf_FieldDescriptorProtoType.TypeUInt64: result = "0"
+ of google_protobuf_FieldDescriptorProtoType.TypeInt32: result = "0"
+ of google_protobuf_FieldDescriptorProtoType.TypeFixed64: result = "0"
+ of google_protobuf_FieldDescriptorProtoType.TypeFixed32: result = "0"
+ of google_protobuf_FieldDescriptorProtoType.TypeBool: result = "false"
+ of google_protobuf_FieldDescriptorProtoType.TypeString: result = "\"\""
+ of google_protobuf_FieldDescriptorProtoType.TypeGroup: result = ""
+ of google_protobuf_FieldDescriptorProtoType.TypeMessage: result = "nil"
+ of google_protobuf_FieldDescriptorProtoType.TypeBytes: result = "bytes(\"\")"
+ of google_protobuf_FieldDescriptorProtoType.TypeUInt32: result = "0"
+ of google_protobuf_FieldDescriptorProtoType.TypeEnum: result = &"{field.typeName}(0)"
+ of google_protobuf_FieldDescriptorProtoType.TypeSFixed32: result = "0"
+ of google_protobuf_FieldDescriptorProtoType.TypeSFixed64: result = "0"
+ of google_protobuf_FieldDescriptorProtoType.TypeSInt32: result = "0"
+ of google_protobuf_FieldDescriptorProtoType.TypeSInt64: result = "0"
proc wiretypeStr(field: Field): string =
result = "WireType."
case field.ftype
- of FieldDescriptorProtoType.TypeDouble: result &= "Fixed64"
- of FieldDescriptorProtoType.TypeFloat: result &= "Fixed32"
- of FieldDescriptorProtoType.TypeInt64: result &= "Varint"
- of FieldDescriptorProtoType.TypeUInt64: result &= "Varint"
- of FieldDescriptorProtoType.TypeInt32: result &= "Varint"
- of FieldDescriptorProtoType.TypeFixed64: result &= "Fixed64"
- of FieldDescriptorProtoType.TypeFixed32: result &= "Fixed32"
- of FieldDescriptorProtoType.TypeBool: result &= "Varint"
- of FieldDescriptorProtoType.TypeString: result &= "LengthDelimited"
- of FieldDescriptorProtoType.TypeGroup: result &= ""
- of FieldDescriptorProtoType.TypeMessage: result &= "LengthDelimited"
- of FieldDescriptorProtoType.TypeBytes: result &= "LengthDelimited"
- of FieldDescriptorProtoType.TypeUInt32: result &= "Varint"
- of FieldDescriptorProtoType.TypeEnum: result &= &"Varint"
- of FieldDescriptorProtoType.TypeSFixed32: result &= "Fixed32"
- of FieldDescriptorProtoType.TypeSFixed64: result &= "Fixed64"
- of FieldDescriptorProtoType.TypeSInt32: result &= "Varint"
- of FieldDescriptorProtoType.TypeSInt64: result &= "Varint"
+ of google_protobuf_FieldDescriptorProtoType.TypeDouble: result &= "Fixed64"
+ of google_protobuf_FieldDescriptorProtoType.TypeFloat: result &= "Fixed32"
+ of google_protobuf_FieldDescriptorProtoType.TypeInt64: result &= "Varint"
+ of google_protobuf_FieldDescriptorProtoType.TypeUInt64: result &= "Varint"
+ of google_protobuf_FieldDescriptorProtoType.TypeInt32: result &= "Varint"
+ of google_protobuf_FieldDescriptorProtoType.TypeFixed64: result &= "Fixed64"
+ of google_protobuf_FieldDescriptorProtoType.TypeFixed32: result &= "Fixed32"
+ of google_protobuf_FieldDescriptorProtoType.TypeBool: result &= "Varint"
+ of google_protobuf_FieldDescriptorProtoType.TypeString: result &= "LengthDelimited"
+ of google_protobuf_FieldDescriptorProtoType.TypeGroup: result &= ""
+ of google_protobuf_FieldDescriptorProtoType.TypeMessage: result &= "LengthDelimited"
+ of google_protobuf_FieldDescriptorProtoType.TypeBytes: result &= "LengthDelimited"
+ of google_protobuf_FieldDescriptorProtoType.TypeUInt32: result &= "Varint"
+ of google_protobuf_FieldDescriptorProtoType.TypeEnum: result &= &"Varint"
+ of google_protobuf_FieldDescriptorProtoType.TypeSFixed32: result &= "Fixed32"
+ of google_protobuf_FieldDescriptorProtoType.TypeSFixed64: result &= "Fixed64"
+ of google_protobuf_FieldDescriptorProtoType.TypeSInt32: result &= "Varint"
+ of google_protobuf_FieldDescriptorProtoType.TypeSInt64: result &= "Varint"
proc fieldTypeStr(field: Field): string =
result = "FieldType." & $field.ftype
@@ -250,13 +248,13 @@ proc sizeOfProc(field: Field): string =
else:
result = &"sizeOf{field.typeName}"
-proc newField(file: ProtoFile, message: Message, desc: FieldDescriptorProto): Field =
+proc newField(file: ProtoFile, message: Message, desc: google_protobuf_FieldDescriptorProto): Field =
new(result)
result.name = desc.name
result.number = desc.number
result.label = desc.label
- result.ftype = desc.type
+ result.ftype = desc.ftype
result.typeName = ""
result.packed = false
result.mapEntry = nil
@@ -304,7 +302,7 @@ proc newOneof(name: string): Oneof =
result.fields = @[]
result.name = name
-proc newMessage(file: ProtoFile, names: Names, desc: DescriptorProto): Message =
+proc newMessage(file: ProtoFile, names: Names, desc: google_protobuf_DescriptorProto): Message =
new(result)
result.names = names
@@ -332,7 +330,7 @@ proc fixMapEntry(file: ProtoFile, message: Message): bool =
field.mapEntry = msg
result = true
-proc newEnum(names: Names, desc: EnumDescriptorProto): Enum =
+proc newEnum(names: Names, desc: google_protobuf_EnumDescriptorProto): Enum =
new(result)
result.names = names & desc.name
@@ -349,8 +347,8 @@ proc newEnum(names: Names, desc: EnumDescriptorProto): Enum =
system.cmp(x.number, y.number)
)
-iterator messages(desc: DescriptorProto, names: Names): tuple[names: Names, desc: DescriptorProto] =
- var stack: seq[tuple[names: Names, desc: DescriptorProto]] = @[]
+iterator messages(desc: google_protobuf_DescriptorProto, names: Names): tuple[names: Names, desc: google_protobuf_DescriptorProto] =
+ var stack: seq[tuple[names: Names, desc: google_protobuf_DescriptorProto]] = @[]
for nested in desc.nested_type:
add(stack, (names, nested))
@@ -364,7 +362,7 @@ iterator messages(desc: DescriptorProto, names: Names): tuple[names: Names, desc
for desc in submsg.nested_type:
add(stack, (subnames, desc))
-iterator messages(fdesc: FileDescriptorProto, names: Names): tuple[names: Names, desc: DescriptorProto] =
+iterator messages(fdesc: google_protobuf_FileDescriptorProto, names: Names): tuple[names: Names, desc: google_protobuf_DescriptorProto] =
for desc in fdesc.message_type:
let subnames = names & desc.name
yield (subnames, desc)
@@ -447,7 +445,7 @@ iterator sortDependencies(messages: seq[Message]): Message =
if name in byname:
yield byname[name]
-proc parseFile(name: string, fdesc: FileDescriptorProto): ProtoFile =
+proc parseFile(name: string, fdesc: google_protobuf_FileDescriptorProto): ProtoFile =
log(&"parsing {name}")
new(result)
@@ -835,7 +833,7 @@ iterator genProcs(msg: Message): string =
yield indent(&"result = read{msg.names}(pbs)", 4)
yield ""
-proc processFile(filename: string, fdesc: FileDescriptorProto,
+proc processFile(filename: string, fdesc: google_protobuf_FileDescriptorProto,
otherFiles: TableRef[string, ProtoFile]): ProcessedFile =
var (dir, name, _) = splitFile(filename)
var pbfilename = (dir / name) & "_pb.nim"
@@ -896,7 +894,7 @@ proc processFile(filename: string, fdesc: FileDescriptorProto,
addLine(result.data, line)
addLine(result.data, "")
-proc generateCode(request: CodeGeneratorRequest, response: CodeGeneratorResponse) =
+proc generateCode(request: google_protobuf_compiler_CodeGeneratorRequest, response: google_protobuf_compiler_CodeGeneratorResponse) =
let otherFiles = newTable[string, ProtoFile]()
for file in request.proto_file:
@@ -906,7 +904,7 @@ proc generateCode(request: CodeGeneratorRequest, response: CodeGeneratorResponse
for fdesc in request.proto_file:
if fdesc.name == filename:
let results = processFile(filename, fdesc, otherFiles)
- let f = newCodeGeneratorResponse_File()
+ let f = newgoogle_protobuf_compiler_CodeGeneratorResponse_File()
setName(f, results.name)
setContent(f, results.data)
addFile(response, f)
@@ -915,9 +913,9 @@ proc pluginMain*() =
let pbsi = newProtobufStream(newFileStream(stdin))
let pbso = newProtobufStream(newFileStream(stdout))
- let request = readCodeGeneratorRequest(pbsi)
- let response = newCodeGeneratorResponse()
+ let request = readgoogle_protobuf_compiler_CodeGeneratorRequest(pbsi)
+ let response = newgoogle_protobuf_compiler_CodeGeneratorResponse()
generateCode(request, response)
- writeCodeGeneratorResponse(pbso, response)
+ writegoogle_protobuf_compiler_CodeGeneratorResponse(pbso, response)
diff --git a/src/nimpb_buildpkg/plugin_pb.nim b/src/nimpb_buildpkg/plugin_pb.nim
index fa9fc94..1f7cd1e 100644
--- a/src/nimpb_buildpkg/plugin_pb.nim
+++ b/src/nimpb_buildpkg/plugin_pb.nim
@@ -1,160 +1,549 @@
+# Generated by protoc_gen_nim. Do not edit!
+
import intsets
-import gen
import nimpb/nimpb
import descriptor_pb
-const
- VersionDesc = MessageDesc(
- name: "Version",
- fields: @[
- FieldDesc(
- name: "major",
- number: 1,
- ftype: FieldType.Int32,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "minor",
- number: 2,
- ftype: FieldType.Int32,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "patch",
- number: 3,
- ftype: FieldType.Int32,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "suffix",
- number: 4,
- ftype: FieldType.String,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- )
- ]
- )
-
- CodeGeneratorRequestDesc = MessageDesc(
- name: "CodeGeneratorRequest",
- fields: @[
- FieldDesc(
- name: "file_to_generate",
- number: 1,
- ftype: FieldType.String,
- label: FieldLabel.Repeated,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "parameter",
- number: 2,
- ftype: FieldType.String,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "proto_file",
- number: 15,
- ftype: FieldType.Message,
- label: FieldLabel.Repeated,
- typeName: "FileDescriptorProto",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "compiler_version",
- number: 3,
- ftype: FieldType.Message,
- label: FieldLabel.Optional,
- typeName: "Version",
- packed: false,
- oneofIdx: -1,
- )
- ]
- )
-
- CodeGeneratorResponseDesc = MessageDesc(
- name: "CodeGeneratorResponse",
- fields: @[
- FieldDesc(
- name: "error",
- number: 1,
- ftype: FieldType.String,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "file",
- number: 15,
- ftype: FieldType.Message,
- label: FieldLabel.Repeated,
- typeName: "CodeGeneratorResponse_File",
- packed: false,
- oneofIdx: -1,
- ),
- ]
- )
-
- CodeGeneratorResponse_FileDesc = MessageDesc(
- name: "CodeGeneratorResponse_File",
- fields: @[
- FieldDesc(
- name: "name",
- number: 1,
- ftype: FieldType.String,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "insertion_point",
- number: 2,
- ftype: FieldType.String,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- FieldDesc(
- name: "content",
- number: 15,
- ftype: FieldType.String,
- label: FieldLabel.Optional,
- typeName: "",
- packed: false,
- oneofIdx: -1,
- ),
- ]
- )
-
-generateMessageType(VersionDesc)
-generateMessageProcs(VersionDesc)
-
-generateMessageType(CodeGeneratorRequestDesc)
-generateMessageProcs(CodeGeneratorRequestDesc)
-
-generateMessageType(CodeGeneratorResponse_FileDesc)
-generateMessageProcs(CodeGeneratorResponse_FileDesc)
-
-generateMessageType(CodeGeneratorResponseDesc)
-generateMessageProcs(CodeGeneratorResponseDesc)
+type
+ google_protobuf_compiler_Version* = ref google_protobuf_compiler_VersionObj
+ google_protobuf_compiler_VersionObj* = object of RootObj
+ hasField: IntSet
+ major: int32
+ minor: int32
+ patch: int32
+ suffix: string
+ google_protobuf_compiler_CodeGeneratorRequest* = ref google_protobuf_compiler_CodeGeneratorRequestObj
+ google_protobuf_compiler_CodeGeneratorRequestObj* = object of RootObj
+ hasField: IntSet
+ file_to_generate: seq[string]
+ parameter: string
+ proto_file: seq[google_protobuf_FileDescriptorProto]
+ compiler_version: google_protobuf_compiler_Version
+ google_protobuf_compiler_CodeGeneratorResponse* = ref google_protobuf_compiler_CodeGeneratorResponseObj
+ google_protobuf_compiler_CodeGeneratorResponseObj* = object of RootObj
+ hasField: IntSet
+ error: string
+ file: seq[google_protobuf_compiler_CodeGeneratorResponse_File]
+ google_protobuf_compiler_CodeGeneratorResponse_File* = ref google_protobuf_compiler_CodeGeneratorResponse_FileObj
+ google_protobuf_compiler_CodeGeneratorResponse_FileObj* = object of RootObj
+ hasField: IntSet
+ name: string
+ insertion_point: string
+ content: string
+
+proc newgoogle_protobuf_compiler_Version*(): google_protobuf_compiler_Version
+proc writegoogle_protobuf_compiler_Version*(stream: ProtobufStream, message: google_protobuf_compiler_Version)
+proc readgoogle_protobuf_compiler_Version*(stream: ProtobufStream): google_protobuf_compiler_Version
+proc sizeOfgoogle_protobuf_compiler_Version*(message: google_protobuf_compiler_Version): uint64
+
+proc newgoogle_protobuf_compiler_CodeGeneratorRequest*(): google_protobuf_compiler_CodeGeneratorRequest
+proc writegoogle_protobuf_compiler_CodeGeneratorRequest*(stream: ProtobufStream, message: google_protobuf_compiler_CodeGeneratorRequest)
+proc readgoogle_protobuf_compiler_CodeGeneratorRequest*(stream: ProtobufStream): google_protobuf_compiler_CodeGeneratorRequest
+proc sizeOfgoogle_protobuf_compiler_CodeGeneratorRequest*(message: google_protobuf_compiler_CodeGeneratorRequest): uint64
+
+proc newgoogle_protobuf_compiler_CodeGeneratorResponse_File*(): google_protobuf_compiler_CodeGeneratorResponse_File
+proc writegoogle_protobuf_compiler_CodeGeneratorResponse_File*(stream: ProtobufStream, message: google_protobuf_compiler_CodeGeneratorResponse_File)
+proc readgoogle_protobuf_compiler_CodeGeneratorResponse_File*(stream: ProtobufStream): google_protobuf_compiler_CodeGeneratorResponse_File
+proc sizeOfgoogle_protobuf_compiler_CodeGeneratorResponse_File*(message: google_protobuf_compiler_CodeGeneratorResponse_File): uint64
+
+proc newgoogle_protobuf_compiler_CodeGeneratorResponse*(): google_protobuf_compiler_CodeGeneratorResponse
+proc writegoogle_protobuf_compiler_CodeGeneratorResponse*(stream: ProtobufStream, message: google_protobuf_compiler_CodeGeneratorResponse)
+proc readgoogle_protobuf_compiler_CodeGeneratorResponse*(stream: ProtobufStream): google_protobuf_compiler_CodeGeneratorResponse
+proc sizeOfgoogle_protobuf_compiler_CodeGeneratorResponse*(message: google_protobuf_compiler_CodeGeneratorResponse): uint64
+
+proc newgoogle_protobuf_compiler_Version*(): google_protobuf_compiler_Version =
+ new(result)
+ result.hasField = initIntSet()
+ result.major = 0
+ result.minor = 0
+ result.patch = 0
+ result.suffix = ""
+
+proc clearmajor*(message: google_protobuf_compiler_Version) =
+ message.major = 0
+ excl(message.hasField, [1])
+
+proc hasmajor*(message: google_protobuf_compiler_Version): bool =
+ result = contains(message.hasField, 1)
+
+proc setmajor*(message: google_protobuf_compiler_Version, value: int32) =
+ message.major = value
+ incl(message.hasField, 1)
+
+proc major*(message: google_protobuf_compiler_Version): int32 {.inline.} =
+ message.major
+
+proc `major=`*(message: google_protobuf_compiler_Version, value: int32) {.inline.} =
+ setmajor(message, value)
+
+proc clearminor*(message: google_protobuf_compiler_Version) =
+ message.minor = 0
+ excl(message.hasField, [2])
+
+proc hasminor*(message: google_protobuf_compiler_Version): bool =
+ result = contains(message.hasField, 2)
+
+proc setminor*(message: google_protobuf_compiler_Version, value: int32) =
+ message.minor = value
+ incl(message.hasField, 2)
+
+proc minor*(message: google_protobuf_compiler_Version): int32 {.inline.} =
+ message.minor
+
+proc `minor=`*(message: google_protobuf_compiler_Version, value: int32) {.inline.} =
+ setminor(message, value)
+
+proc clearpatch*(message: google_protobuf_compiler_Version) =
+ message.patch = 0
+ excl(message.hasField, [3])
+
+proc haspatch*(message: google_protobuf_compiler_Version): bool =
+ result = contains(message.hasField, 3)
+
+proc setpatch*(message: google_protobuf_compiler_Version, value: int32) =
+ message.patch = value
+ incl(message.hasField, 3)
+
+proc patch*(message: google_protobuf_compiler_Version): int32 {.inline.} =
+ message.patch
+
+proc `patch=`*(message: google_protobuf_compiler_Version, value: int32) {.inline.} =
+ setpatch(message, value)
+
+proc clearsuffix*(message: google_protobuf_compiler_Version) =
+ message.suffix = ""
+ excl(message.hasField, [4])
+
+proc hassuffix*(message: google_protobuf_compiler_Version): bool =
+ result = contains(message.hasField, 4)
+
+proc setsuffix*(message: google_protobuf_compiler_Version, value: string) =
+ message.suffix = value
+ incl(message.hasField, 4)
+
+proc suffix*(message: google_protobuf_compiler_Version): string {.inline.} =
+ message.suffix
+
+proc `suffix=`*(message: google_protobuf_compiler_Version, value: string) {.inline.} =
+ setsuffix(message, value)
+
+proc sizeOfgoogle_protobuf_compiler_Version*(message: google_protobuf_compiler_Version): uint64 =
+ if hasmajor(message):
+ result = result + sizeOfTag(1, WireType.Varint)
+ result = result + sizeOfInt32(message.major)
+ if hasminor(message):
+ result = result + sizeOfTag(2, WireType.Varint)
+ result = result + sizeOfInt32(message.minor)
+ if haspatch(message):
+ result = result + sizeOfTag(3, WireType.Varint)
+ result = result + sizeOfInt32(message.patch)
+ if hassuffix(message):
+ result = result + sizeOfTag(4, WireType.LengthDelimited)
+ result = result + sizeOfString(message.suffix)
+
+proc writegoogle_protobuf_compiler_Version*(stream: ProtobufStream, message: google_protobuf_compiler_Version) =
+ if hasmajor(message):
+ writeInt32(stream, message.major, 1)
+ if hasminor(message):
+ writeInt32(stream, message.minor, 2)
+ if haspatch(message):
+ writeInt32(stream, message.patch, 3)
+ if hassuffix(message):
+ writeString(stream, message.suffix, 4)
+
+proc readgoogle_protobuf_compiler_Version*(stream: ProtobufStream): google_protobuf_compiler_Version =
+ result = newgoogle_protobuf_compiler_Version()
+ 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.Varint)
+ setmajor(result, readInt32(stream))
+ of 2:
+ expectWireType(wireType, WireType.Varint)
+ setminor(result, readInt32(stream))
+ of 3:
+ expectWireType(wireType, WireType.Varint)
+ setpatch(result, readInt32(stream))
+ of 4:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setsuffix(result, readString(stream))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_compiler_Version): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_compiler_Version(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_compiler_Version*(data: string): google_protobuf_compiler_Version =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_compiler_Version(pbs)
+
+
+proc newgoogle_protobuf_compiler_CodeGeneratorRequest*(): google_protobuf_compiler_CodeGeneratorRequest =
+ new(result)
+ result.hasField = initIntSet()
+ result.file_to_generate = @[]
+ result.parameter = ""
+ result.proto_file = @[]
+ result.compiler_version = nil
+
+proc clearfile_to_generate*(message: google_protobuf_compiler_CodeGeneratorRequest) =
+ message.file_to_generate = @[]
+ excl(message.hasField, [1])
+
+proc hasfile_to_generate*(message: google_protobuf_compiler_CodeGeneratorRequest): bool =
+ result = contains(message.hasField, 1) or (len(message.file_to_generate) > 0)
+
+proc setfile_to_generate*(message: google_protobuf_compiler_CodeGeneratorRequest, value: seq[string]) =
+ message.file_to_generate = value
+ incl(message.hasField, 1)
+
+proc addfile_to_generate*(message: google_protobuf_compiler_CodeGeneratorRequest, value: string) =
+ add(message.file_to_generate, value)
+ incl(message.hasField, 1)
+
+proc file_to_generate*(message: google_protobuf_compiler_CodeGeneratorRequest): seq[string] {.inline.} =
+ message.file_to_generate
+
+proc `file_to_generate=`*(message: google_protobuf_compiler_CodeGeneratorRequest, value: seq[string]) {.inline.} =
+ setfile_to_generate(message, value)
+
+proc clearparameter*(message: google_protobuf_compiler_CodeGeneratorRequest) =
+ message.parameter = ""
+ excl(message.hasField, [2])
+
+proc hasparameter*(message: google_protobuf_compiler_CodeGeneratorRequest): bool =
+ result = contains(message.hasField, 2)
+
+proc setparameter*(message: google_protobuf_compiler_CodeGeneratorRequest, value: string) =
+ message.parameter = value
+ incl(message.hasField, 2)
+
+proc parameter*(message: google_protobuf_compiler_CodeGeneratorRequest): string {.inline.} =
+ message.parameter
+
+proc `parameter=`*(message: google_protobuf_compiler_CodeGeneratorRequest, value: string) {.inline.} =
+ setparameter(message, value)
+
+proc clearproto_file*(message: google_protobuf_compiler_CodeGeneratorRequest) =
+ message.proto_file = @[]
+ excl(message.hasField, [15])
+
+proc hasproto_file*(message: google_protobuf_compiler_CodeGeneratorRequest): bool =
+ result = contains(message.hasField, 15) or (len(message.proto_file) > 0)
+
+proc setproto_file*(message: google_protobuf_compiler_CodeGeneratorRequest, value: seq[google_protobuf_FileDescriptorProto]) =
+ message.proto_file = value
+ incl(message.hasField, 15)
+
+proc addproto_file*(message: google_protobuf_compiler_CodeGeneratorRequest, value: google_protobuf_FileDescriptorProto) =
+ add(message.proto_file, value)
+ incl(message.hasField, 15)
+
+proc proto_file*(message: google_protobuf_compiler_CodeGeneratorRequest): seq[google_protobuf_FileDescriptorProto] {.inline.} =
+ message.proto_file
+
+proc `proto_file=`*(message: google_protobuf_compiler_CodeGeneratorRequest, value: seq[google_protobuf_FileDescriptorProto]) {.inline.} =
+ setproto_file(message, value)
+
+proc clearcompiler_version*(message: google_protobuf_compiler_CodeGeneratorRequest) =
+ message.compiler_version = nil
+ excl(message.hasField, [3])
+
+proc hascompiler_version*(message: google_protobuf_compiler_CodeGeneratorRequest): bool =
+ result = contains(message.hasField, 3)
+
+proc setcompiler_version*(message: google_protobuf_compiler_CodeGeneratorRequest, value: google_protobuf_compiler_Version) =
+ message.compiler_version = value
+ incl(message.hasField, 3)
+
+proc compiler_version*(message: google_protobuf_compiler_CodeGeneratorRequest): google_protobuf_compiler_Version {.inline.} =
+ message.compiler_version
+
+proc `compiler_version=`*(message: google_protobuf_compiler_CodeGeneratorRequest, value: google_protobuf_compiler_Version) {.inline.} =
+ setcompiler_version(message, value)
+
+proc sizeOfgoogle_protobuf_compiler_CodeGeneratorRequest*(message: google_protobuf_compiler_CodeGeneratorRequest): uint64 =
+ for value in message.file_to_generate:
+ result = result + sizeOfTag(1, WireType.LengthDelimited)
+ result = result + sizeOfString(value)
+ if hasparameter(message):
+ result = result + sizeOfTag(2, WireType.LengthDelimited)
+ result = result + sizeOfString(message.parameter)
+ for value in message.proto_file:
+ result = result + sizeOfTag(15, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_FileDescriptorProto(value))
+ if hascompiler_version(message):
+ result = result + sizeOfTag(3, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_compiler_Version(message.compiler_version))
+
+proc writegoogle_protobuf_compiler_CodeGeneratorRequest*(stream: ProtobufStream, message: google_protobuf_compiler_CodeGeneratorRequest) =
+ for value in message.file_to_generate:
+ writeString(stream, value, 1)
+ if hasparameter(message):
+ writeString(stream, message.parameter, 2)
+ for value in message.proto_file:
+ writeMessage(stream, value, 15)
+ if hascompiler_version(message):
+ writeMessage(stream, message.compiler_version, 3)
+
+proc readgoogle_protobuf_compiler_CodeGeneratorRequest*(stream: ProtobufStream): google_protobuf_compiler_CodeGeneratorRequest =
+ result = newgoogle_protobuf_compiler_CodeGeneratorRequest()
+ 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)
+ addfile_to_generate(result, readString(stream))
+ of 2:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setparameter(result, readString(stream))
+ of 15:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ addproto_file(result, readgoogle_protobuf_FileDescriptorProto(pbs))
+ of 3:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ setcompiler_version(result, readgoogle_protobuf_compiler_Version(pbs))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_compiler_CodeGeneratorRequest): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_compiler_CodeGeneratorRequest(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_compiler_CodeGeneratorRequest*(data: string): google_protobuf_compiler_CodeGeneratorRequest =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_compiler_CodeGeneratorRequest(pbs)
+
+
+proc newgoogle_protobuf_compiler_CodeGeneratorResponse_File*(): google_protobuf_compiler_CodeGeneratorResponse_File =
+ new(result)
+ result.hasField = initIntSet()
+ result.name = ""
+ result.insertion_point = ""
+ result.content = ""
+
+proc clearname*(message: google_protobuf_compiler_CodeGeneratorResponse_File) =
+ message.name = ""
+ excl(message.hasField, [1])
+
+proc hasname*(message: google_protobuf_compiler_CodeGeneratorResponse_File): bool =
+ result = contains(message.hasField, 1)
+
+proc setname*(message: google_protobuf_compiler_CodeGeneratorResponse_File, value: string) =
+ message.name = value
+ incl(message.hasField, 1)
+
+proc name*(message: google_protobuf_compiler_CodeGeneratorResponse_File): string {.inline.} =
+ message.name
+
+proc `name=`*(message: google_protobuf_compiler_CodeGeneratorResponse_File, value: string) {.inline.} =
+ setname(message, value)
+
+proc clearinsertion_point*(message: google_protobuf_compiler_CodeGeneratorResponse_File) =
+ message.insertion_point = ""
+ excl(message.hasField, [2])
+
+proc hasinsertion_point*(message: google_protobuf_compiler_CodeGeneratorResponse_File): bool =
+ result = contains(message.hasField, 2)
+
+proc setinsertion_point*(message: google_protobuf_compiler_CodeGeneratorResponse_File, value: string) =
+ message.insertion_point = value
+ incl(message.hasField, 2)
+
+proc insertion_point*(message: google_protobuf_compiler_CodeGeneratorResponse_File): string {.inline.} =
+ message.insertion_point
+
+proc `insertion_point=`*(message: google_protobuf_compiler_CodeGeneratorResponse_File, value: string) {.inline.} =
+ setinsertion_point(message, value)
+
+proc clearcontent*(message: google_protobuf_compiler_CodeGeneratorResponse_File) =
+ message.content = ""
+ excl(message.hasField, [15])
+
+proc hascontent*(message: google_protobuf_compiler_CodeGeneratorResponse_File): bool =
+ result = contains(message.hasField, 15)
+
+proc setcontent*(message: google_protobuf_compiler_CodeGeneratorResponse_File, value: string) =
+ message.content = value
+ incl(message.hasField, 15)
+
+proc content*(message: google_protobuf_compiler_CodeGeneratorResponse_File): string {.inline.} =
+ message.content
+
+proc `content=`*(message: google_protobuf_compiler_CodeGeneratorResponse_File, value: string) {.inline.} =
+ setcontent(message, value)
+
+proc sizeOfgoogle_protobuf_compiler_CodeGeneratorResponse_File*(message: google_protobuf_compiler_CodeGeneratorResponse_File): uint64 =
+ if hasname(message):
+ result = result + sizeOfTag(1, WireType.LengthDelimited)
+ result = result + sizeOfString(message.name)
+ if hasinsertion_point(message):
+ result = result + sizeOfTag(2, WireType.LengthDelimited)
+ result = result + sizeOfString(message.insertion_point)
+ if hascontent(message):
+ result = result + sizeOfTag(15, WireType.LengthDelimited)
+ result = result + sizeOfString(message.content)
+
+proc writegoogle_protobuf_compiler_CodeGeneratorResponse_File*(stream: ProtobufStream, message: google_protobuf_compiler_CodeGeneratorResponse_File) =
+ if hasname(message):
+ writeString(stream, message.name, 1)
+ if hasinsertion_point(message):
+ writeString(stream, message.insertion_point, 2)
+ if hascontent(message):
+ writeString(stream, message.content, 15)
+
+proc readgoogle_protobuf_compiler_CodeGeneratorResponse_File*(stream: ProtobufStream): google_protobuf_compiler_CodeGeneratorResponse_File =
+ result = newgoogle_protobuf_compiler_CodeGeneratorResponse_File()
+ 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)
+ setname(result, readString(stream))
+ of 2:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setinsertion_point(result, readString(stream))
+ of 15:
+ expectWireType(wireType, WireType.LengthDelimited)
+ setcontent(result, readString(stream))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_compiler_CodeGeneratorResponse_File): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_compiler_CodeGeneratorResponse_File(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_compiler_CodeGeneratorResponse_File*(data: string): google_protobuf_compiler_CodeGeneratorResponse_File =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_compiler_CodeGeneratorResponse_File(pbs)
+
+
+proc newgoogle_protobuf_compiler_CodeGeneratorResponse*(): google_protobuf_compiler_CodeGeneratorResponse =
+ new(result)
+ result.hasField = initIntSet()
+ result.error = ""
+ result.file = @[]
+
+proc clearerror*(message: google_protobuf_compiler_CodeGeneratorResponse) =
+ message.error = ""
+ excl(message.hasField, [1])
+
+proc haserror*(message: google_protobuf_compiler_CodeGeneratorResponse): bool =
+ result = contains(message.hasField, 1)
+
+proc seterror*(message: google_protobuf_compiler_CodeGeneratorResponse, value: string) =
+ message.error = value
+ incl(message.hasField, 1)
+
+proc error*(message: google_protobuf_compiler_CodeGeneratorResponse): string {.inline.} =
+ message.error
+
+proc `error=`*(message: google_protobuf_compiler_CodeGeneratorResponse, value: string) {.inline.} =
+ seterror(message, value)
+
+proc clearfile*(message: google_protobuf_compiler_CodeGeneratorResponse) =
+ message.file = @[]
+ excl(message.hasField, [15])
+
+proc hasfile*(message: google_protobuf_compiler_CodeGeneratorResponse): bool =
+ result = contains(message.hasField, 15) or (len(message.file) > 0)
+
+proc setfile*(message: google_protobuf_compiler_CodeGeneratorResponse, value: seq[google_protobuf_compiler_CodeGeneratorResponse_File]) =
+ message.file = value
+ incl(message.hasField, 15)
+
+proc addfile*(message: google_protobuf_compiler_CodeGeneratorResponse, value: google_protobuf_compiler_CodeGeneratorResponse_File) =
+ add(message.file, value)
+ incl(message.hasField, 15)
+
+proc file*(message: google_protobuf_compiler_CodeGeneratorResponse): seq[google_protobuf_compiler_CodeGeneratorResponse_File] {.inline.} =
+ message.file
+
+proc `file=`*(message: google_protobuf_compiler_CodeGeneratorResponse, value: seq[google_protobuf_compiler_CodeGeneratorResponse_File]) {.inline.} =
+ setfile(message, value)
+
+proc sizeOfgoogle_protobuf_compiler_CodeGeneratorResponse*(message: google_protobuf_compiler_CodeGeneratorResponse): uint64 =
+ if haserror(message):
+ result = result + sizeOfTag(1, WireType.LengthDelimited)
+ result = result + sizeOfString(message.error)
+ for value in message.file:
+ result = result + sizeOfTag(15, WireType.LengthDelimited)
+ result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_compiler_CodeGeneratorResponse_File(value))
+
+proc writegoogle_protobuf_compiler_CodeGeneratorResponse*(stream: ProtobufStream, message: google_protobuf_compiler_CodeGeneratorResponse) =
+ if haserror(message):
+ writeString(stream, message.error, 1)
+ for value in message.file:
+ writeMessage(stream, value, 15)
+
+proc readgoogle_protobuf_compiler_CodeGeneratorResponse*(stream: ProtobufStream): google_protobuf_compiler_CodeGeneratorResponse =
+ result = newgoogle_protobuf_compiler_CodeGeneratorResponse()
+ 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)
+ seterror(result, readString(stream))
+ of 15:
+ expectWireType(wireType, WireType.LengthDelimited)
+ let
+ size = readVarint(stream)
+ data = safeReadStr(stream, int(size))
+ pbs = newProtobufStream(newStringStream(data))
+ addfile(result, readgoogle_protobuf_compiler_CodeGeneratorResponse_File(pbs))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: google_protobuf_compiler_CodeGeneratorResponse): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writegoogle_protobuf_compiler_CodeGeneratorResponse(pbs, message)
+ result = ss.data
+
+proc newgoogle_protobuf_compiler_CodeGeneratorResponse*(data: string): google_protobuf_compiler_CodeGeneratorResponse =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readgoogle_protobuf_compiler_CodeGeneratorResponse(pbs)
+
+