diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/nimpb_build.nim | 134 | ||||
| -rw-r--r-- | src/nimpb_buildpkg/descriptor_pb.nim | 4801 | ||||
| -rw-r--r-- | src/nimpb_buildpkg/plugin.nim | 1084 | ||||
| -rw-r--r-- | src/nimpb_protoc.nim | 50 | ||||
| -rw-r--r-- | src/nimpb_protocpkg/protobuf/LICENSE (renamed from src/nimpb_buildpkg/protobuf/LICENSE) | 0 | ||||
| -rw-r--r-- | src/nimpb_protocpkg/protobuf/include/google/protobuf/any.proto (renamed from src/nimpb_buildpkg/protobuf/include/google/protobuf/any.proto) | 0 | ||||
| -rw-r--r-- | src/nimpb_protocpkg/protobuf/include/google/protobuf/api.proto (renamed from src/nimpb_buildpkg/protobuf/include/google/protobuf/api.proto) | 0 | ||||
| -rw-r--r-- | src/nimpb_protocpkg/protobuf/include/google/protobuf/compiler/plugin.proto (renamed from src/nimpb_buildpkg/protobuf/include/google/protobuf/compiler/plugin.proto) | 0 | ||||
| -rw-r--r-- | src/nimpb_protocpkg/protobuf/include/google/protobuf/descriptor.proto (renamed from src/nimpb_buildpkg/protobuf/include/google/protobuf/descriptor.proto) | 0 | ||||
| -rw-r--r-- | src/nimpb_protocpkg/protobuf/include/google/protobuf/duration.proto (renamed from src/nimpb_buildpkg/protobuf/include/google/protobuf/duration.proto) | 0 | ||||
| -rw-r--r-- | src/nimpb_protocpkg/protobuf/include/google/protobuf/empty.proto (renamed from src/nimpb_buildpkg/protobuf/include/google/protobuf/empty.proto) | 0 | ||||
| -rw-r--r-- | src/nimpb_protocpkg/protobuf/include/google/protobuf/field_mask.proto (renamed from src/nimpb_buildpkg/protobuf/include/google/protobuf/field_mask.proto) | 0 | ||||
| -rw-r--r-- | src/nimpb_protocpkg/protobuf/include/google/protobuf/source_context.proto (renamed from src/nimpb_buildpkg/protobuf/include/google/protobuf/source_context.proto) | 0 | ||||
| -rw-r--r-- | src/nimpb_protocpkg/protobuf/include/google/protobuf/struct.proto (renamed from src/nimpb_buildpkg/protobuf/include/google/protobuf/struct.proto) | 0 | ||||
| -rw-r--r-- | src/nimpb_protocpkg/protobuf/include/google/protobuf/timestamp.proto (renamed from src/nimpb_buildpkg/protobuf/include/google/protobuf/timestamp.proto) | 0 | ||||
| -rw-r--r-- | src/nimpb_protocpkg/protobuf/include/google/protobuf/type.proto (renamed from src/nimpb_buildpkg/protobuf/include/google/protobuf/type.proto) | 0 | ||||
| -rw-r--r-- | src/nimpb_protocpkg/protobuf/include/google/protobuf/wrappers.proto (renamed from src/nimpb_buildpkg/protobuf/include/google/protobuf/wrappers.proto) | 0 | ||||
| -rwxr-xr-x | src/nimpb_protocpkg/protobuf/protoc-linux-aarch_64 (renamed from src/nimpb_buildpkg/protobuf/protoc-linux-aarch_64) | bin | 4413084 -> 4413084 bytes | |||
| -rwxr-xr-x | src/nimpb_protocpkg/protobuf/protoc-linux-x86_32 (renamed from src/nimpb_buildpkg/protobuf/protoc-linux-x86_32) | bin | 4132368 -> 4132368 bytes | |||
| -rwxr-xr-x | src/nimpb_protocpkg/protobuf/protoc-linux-x86_64 (renamed from src/nimpb_buildpkg/protobuf/protoc-linux-x86_64) | bin | 4433736 -> 4433736 bytes | |||
| -rwxr-xr-x | src/nimpb_protocpkg/protobuf/protoc-osx-x86_64 (renamed from src/nimpb_buildpkg/protobuf/protoc-osx-x86_64) | bin | 7514608 -> 7514608 bytes | |||
| -rwxr-xr-x | src/nimpb_protocpkg/protobuf/protoc-win32.exe (renamed from src/nimpb_buildpkg/protobuf/protoc-win32.exe) | bin | 4035584 -> 4035584 bytes |
22 files changed, 50 insertions, 6019 deletions
diff --git a/src/nimpb_build.nim b/src/nimpb_build.nim deleted file mode 100644 index f1d4c0d..0000000 --- a/src/nimpb_build.nim +++ /dev/null @@ -1,134 +0,0 @@ -import os -import osproc -import streams -import strformat -import strtabs -import strutils - -from nimpb_buildpkg/plugin import processFileDescriptorSet, ServiceGenerator, Service, ServiceMethod - -export Service, ServiceMethod - -when defined(windows): - const compilerId = "win32" -elif defined(linux): - when defined(i386): - const arch = "x86_32" - elif defined(amd64): - const arch = "x86_64" - elif defined(arm64): - const arch = "aarch_64" - else: - {.fatal:"unsupported architecture".} - const compilerId = "linux-" & arch -elif defined(macosx): - when defined(amd64): - const arch = "x86_64" - else: - {.fatal:"unsupported architecture".} - const compilerId = "osx-" & arch -else: - {.fatal:"unsupported platform".} - -when defined(windows): - const exeSuffix = ".exe" -else: - const exeSuffix = "" - -proc findCompiler(): string = - let - compilerName = &"protoc-{compilerId}{exeSuffix}" - paths = @[ - getAppDir() / "src" / "nimpb_buildpkg" / "protobuf", - getAppDir() / "nimpb_buildpkg" / "protobuf", - parentDir(currentSourcePath()) / "nimpb_buildpkg" / "protobuf", - ] - - for path in paths: - if fileExists(path / compilerName): - return path / compilerName - - raise newException(Exception, &"{compilerName} not found!") - -proc builtinIncludeDir(compilerPath: string): string = - parentDir(compilerPath) / "include" - -template verboseEcho(x: untyped): untyped = - if verbose: - echo(x) - -proc myTempDir(): string = - result = getTempDir() / "nimpb_build_tmp" - -proc compileProtos*(protos: openArray[string], - includes: openArray[string], - outdir: string, - serviceGenerator: ServiceGenerator = nil) = - let command = findCompiler() - var args: seq[string] = @[] - - var outputFilename = myTempDir() / "file-descriptor-set" - createDir(myTempDir()) - - add(args, "--include_imports") - add(args, "--include_source_info") - add(args, &"-o{outputFilename}") - - for incdir in includes: - add(args, &"-I{incdir}") - - add(args, &"-I{builtinIncludeDir(command)}") - - for proto in protos: - add(args, proto) - - var cmdline: string = quoteShell(command) - for arg in args: - cmdline &= " " & quoteShell(arg) - - let (outp, rc) = execCmdEx(cmdline) - - if rc != 0: - raise newException(Exception, outp) - - processFileDescriptorSet(outputFilename, outdir, protos, serviceGenerator) - - -when isMainModule: - proc usage() {.noreturn.} = - echo(&""" - {getAppFilename()} --out=OUTDIR [-IPATH [-IPATH]...] PROTOFILE... - - --out The output directory for the generated files - -I Add a path to the set of include paths - """) - quit(QuitFailure) - - var includes: seq[string] = @[] - var protos: seq[string] = @[] - var outdir: string - - if paramCount() == 0: - usage() - - for idx in 1..paramCount(): - let param = paramStr(idx) - - if param.startsWith("-I"): - add(includes, param[2..^1]) - elif param.startsWith("--out="): - outdir = param[6..^1] - elif param == "--help": - usage() - else: - add(protos, param) - - if outdir == nil: - echo("error: --out is required") - quit(QuitFailure) - - if len(protos) == 0: - echo("error: no input files") - quit(QuitFailure) - - compileProtos(protos, includes, outdir) diff --git a/src/nimpb_buildpkg/descriptor_pb.nim b/src/nimpb_buildpkg/descriptor_pb.nim deleted file mode 100644 index b6ed832..0000000 --- a/src/nimpb_buildpkg/descriptor_pb.nim +++ /dev/null @@ -1,4801 +0,0 @@ -# Generated by protoc_gen_nim. Do not edit! - -import intsets - -import nimpb/nimpb - -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 - unknownFields: seq[UnknownField] - file: seq[google_protobuf_FileDescriptorProto] - google_protobuf_FileDescriptorProto* = ref google_protobuf_FileDescriptorProtoObj - google_protobuf_FileDescriptorProtoObj* = object of RootObj - hasField: IntSet - unknownFields: seq[UnknownField] - 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 - unknownFields: seq[UnknownField] - 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 - unknownFields: seq[UnknownField] - start: int32 - fend: int32 - google_protobuf_DescriptorProto_ExtensionRange* = ref google_protobuf_DescriptorProto_ExtensionRangeObj - google_protobuf_DescriptorProto_ExtensionRangeObj* = object of RootObj - hasField: IntSet - unknownFields: seq[UnknownField] - start: int32 - fend: int32 - options: google_protobuf_ExtensionRangeOptions - google_protobuf_ExtensionRangeOptions* = ref google_protobuf_ExtensionRangeOptionsObj - google_protobuf_ExtensionRangeOptionsObj* = object of RootObj - hasField: IntSet - unknownFields: seq[UnknownField] - uninterpreted_option: seq[google_protobuf_UninterpretedOption] - google_protobuf_FieldDescriptorProto* = ref google_protobuf_FieldDescriptorProtoObj - google_protobuf_FieldDescriptorProtoObj* = object of RootObj - hasField: IntSet - unknownFields: seq[UnknownField] - 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 - unknownFields: seq[UnknownField] - name: string - options: google_protobuf_OneofOptions - google_protobuf_EnumDescriptorProto* = ref google_protobuf_EnumDescriptorProtoObj - google_protobuf_EnumDescriptorProtoObj* = object of RootObj - hasField: IntSet - unknownFields: seq[UnknownField] - 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 - unknownFields: seq[UnknownField] - start: int32 - fend: int32 - google_protobuf_EnumValueDescriptorProto* = ref google_protobuf_EnumValueDescriptorProtoObj - google_protobuf_EnumValueDescriptorProtoObj* = object of RootObj - hasField: IntSet - unknownFields: seq[UnknownField] - name: string - number: int32 - options: google_protobuf_EnumValueOptions - google_protobuf_ServiceDescriptorProto* = ref google_protobuf_ServiceDescriptorProtoObj - google_protobuf_ServiceDescriptorProtoObj* = object of RootObj - hasField: IntSet - unknownFields: seq[UnknownField] - 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 - unknownFields: seq[UnknownField] - 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 - unknownFields: seq[UnknownField] - 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 - unknownFields: seq[UnknownField] - 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 - unknownFields: seq[UnknownField] - 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 - unknownFields: seq[UnknownField] - uninterpreted_option: seq[google_protobuf_UninterpretedOption] - google_protobuf_EnumOptions* = ref google_protobuf_EnumOptionsObj - google_protobuf_EnumOptionsObj* = object of RootObj - hasField: IntSet - unknownFields: seq[UnknownField] - 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 - unknownFields: seq[UnknownField] - deprecated: bool - uninterpreted_option: seq[google_protobuf_UninterpretedOption] - google_protobuf_ServiceOptions* = ref google_protobuf_ServiceOptionsObj - google_protobuf_ServiceOptionsObj* = object of RootObj - hasField: IntSet - unknownFields: seq[UnknownField] - deprecated: bool - uninterpreted_option: seq[google_protobuf_UninterpretedOption] - google_protobuf_MethodOptions* = ref google_protobuf_MethodOptionsObj - google_protobuf_MethodOptionsObj* = object of RootObj - hasField: IntSet - unknownFields: seq[UnknownField] - 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 - unknownFields: seq[UnknownField] - 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 - unknownFields: seq[UnknownField] - name_part: string - is_extension: bool - google_protobuf_SourceCodeInfo* = ref google_protobuf_SourceCodeInfoObj - google_protobuf_SourceCodeInfoObj* = object of RootObj - hasField: IntSet - unknownFields: seq[UnknownField] - location: seq[google_protobuf_SourceCodeInfo_Location] - google_protobuf_SourceCodeInfo_Location* = ref google_protobuf_SourceCodeInfo_LocationObj - google_protobuf_SourceCodeInfo_LocationObj* = object of RootObj - hasField: IntSet - unknownFields: seq[UnknownField] - 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 - unknownFields: seq[UnknownField] - annotation: seq[google_protobuf_GeneratedCodeInfo_Annotation] - google_protobuf_GeneratedCodeInfo_Annotation* = ref google_protobuf_GeneratedCodeInfo_AnnotationObj - google_protobuf_GeneratedCodeInfo_AnnotationObj* = object of RootObj - hasField: IntSet - unknownFields: seq[UnknownField] - path: seq[int32] - source_file: string - begin: int32 - fend: int32 - -proc newgoogle_protobuf_UninterpretedOption_NamePart*(): google_protobuf_UninterpretedOption_NamePart -proc newgoogle_protobuf_UninterpretedOption_NamePart*(data: string): 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 newgoogle_protobuf_UninterpretedOption*(data: string): 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 newgoogle_protobuf_EnumValueOptions*(data: string): 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 newgoogle_protobuf_EnumValueDescriptorProto*(data: string): 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 newgoogle_protobuf_EnumDescriptorProto_EnumReservedRange*(data: string): 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 newgoogle_protobuf_EnumOptions*(data: string): 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 newgoogle_protobuf_EnumDescriptorProto*(data: string): 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 newgoogle_protobuf_ExtensionRangeOptions*(data: string): 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 newgoogle_protobuf_SourceCodeInfo_Location*(data: string): 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 newgoogle_protobuf_SourceCodeInfo*(data: string): 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 newgoogle_protobuf_FieldOptions*(data: string): 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 newgoogle_protobuf_FieldDescriptorProto*(data: string): 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 newgoogle_protobuf_DescriptorProto_ExtensionRange*(data: string): 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 newgoogle_protobuf_MessageOptions*(data: string): 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 newgoogle_protobuf_OneofOptions*(data: string): 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 newgoogle_protobuf_OneofDescriptorProto*(data: string): 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 newgoogle_protobuf_DescriptorProto_ReservedRange*(data: string): 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 newgoogle_protobuf_DescriptorProto*(data: string): 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 newgoogle_protobuf_FileOptions*(data: string): 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 newgoogle_protobuf_ServiceOptions*(data: string): 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 newgoogle_protobuf_MethodOptions*(data: string): 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 newgoogle_protobuf_MethodDescriptorProto*(data: string): 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 newgoogle_protobuf_ServiceDescriptorProto*(data: string): 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 newgoogle_protobuf_FileDescriptorProto*(data: string): 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 newgoogle_protobuf_FileDescriptorSet*(data: string): 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 newgoogle_protobuf_GeneratedCodeInfo_Annotation*(data: string): 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 newgoogle_protobuf_GeneratedCodeInfo*(data: string): 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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - addname(result, newgoogle_protobuf_UninterpretedOption_NamePart(data)) - 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: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - adduninterpreted_option(result, newgoogle_protobuf_UninterpretedOption(data)) - else: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - setoptions(result, newgoogle_protobuf_EnumValueOptions(data)) - else: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - adduninterpreted_option(result, newgoogle_protobuf_UninterpretedOption(data)) - else: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - addvalue(result, newgoogle_protobuf_EnumValueDescriptorProto(data)) - of 3: - expectWireType(wireType, WireType.LengthDelimited) - let data = readLengthDelimited(stream) - setoptions(result, newgoogle_protobuf_EnumOptions(data)) - of 4: - expectWireType(wireType, WireType.LengthDelimited) - let data = readLengthDelimited(stream) - addreserved_range(result, newgoogle_protobuf_EnumDescriptorProto_EnumReservedRange(data)) - of 5: - expectWireType(wireType, WireType.LengthDelimited) - addreserved_name(result, readString(stream)) - else: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - adduninterpreted_option(result, newgoogle_protobuf_UninterpretedOption(data)) - else: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - addlocation(result, newgoogle_protobuf_SourceCodeInfo_Location(data)) - else: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - result.ctype = google_protobuf_FieldOptions_CType.STRING - result.packed = false - result.jstype = google_protobuf_FieldOptions_JSType.JS_NORMAL - result.lazy = false - result.deprecated = false - result.weak = false - result.uninterpreted_option = @[] - -proc clearctype*(message: google_protobuf_FieldOptions) = - message.ctype = google_protobuf_FieldOptions_CType.STRING - 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.JS_NORMAL - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - adduninterpreted_option(result, newgoogle_protobuf_UninterpretedOption(data)) - else: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - result.name = "" - result.number = 0 - result.label = google_protobuf_FieldDescriptorProto_Label.LABEL_OPTIONAL - result.ftype = google_protobuf_FieldDescriptorProto_Type.TYPE_DOUBLE - 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 = google_protobuf_FieldDescriptorProto_Label.LABEL_OPTIONAL - 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 = google_protobuf_FieldDescriptorProto_Type.TYPE_DOUBLE - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - setoptions(result, newgoogle_protobuf_FieldOptions(data)) - else: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - setoptions(result, newgoogle_protobuf_ExtensionRangeOptions(data)) - else: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - adduninterpreted_option(result, newgoogle_protobuf_UninterpretedOption(data)) - else: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - adduninterpreted_option(result, newgoogle_protobuf_UninterpretedOption(data)) - else: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - setoptions(result, newgoogle_protobuf_OneofOptions(data)) - else: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - addfield(result, newgoogle_protobuf_FieldDescriptorProto(data)) - of 6: - expectWireType(wireType, WireType.LengthDelimited) - let data = readLengthDelimited(stream) - addextension(result, newgoogle_protobuf_FieldDescriptorProto(data)) - of 3: - expectWireType(wireType, WireType.LengthDelimited) - let data = readLengthDelimited(stream) - addnested_type(result, newgoogle_protobuf_DescriptorProto(data)) - of 4: - expectWireType(wireType, WireType.LengthDelimited) - let data = readLengthDelimited(stream) - addenum_type(result, newgoogle_protobuf_EnumDescriptorProto(data)) - of 5: - expectWireType(wireType, WireType.LengthDelimited) - let data = readLengthDelimited(stream) - addextension_range(result, newgoogle_protobuf_DescriptorProto_ExtensionRange(data)) - of 8: - expectWireType(wireType, WireType.LengthDelimited) - let data = readLengthDelimited(stream) - addoneof_decl(result, newgoogle_protobuf_OneofDescriptorProto(data)) - of 7: - expectWireType(wireType, WireType.LengthDelimited) - let data = readLengthDelimited(stream) - setoptions(result, newgoogle_protobuf_MessageOptions(data)) - of 9: - expectWireType(wireType, WireType.LengthDelimited) - let data = readLengthDelimited(stream) - addreserved_range(result, newgoogle_protobuf_DescriptorProto_ReservedRange(data)) - of 10: - expectWireType(wireType, WireType.LengthDelimited) - addreserved_name(result, readString(stream)) - else: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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 = google_protobuf_FileOptions_OptimizeMode.SPEED - 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 = google_protobuf_FileOptions_OptimizeMode.SPEED - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - adduninterpreted_option(result, newgoogle_protobuf_UninterpretedOption(data)) - else: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - adduninterpreted_option(result, newgoogle_protobuf_UninterpretedOption(data)) - else: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - result.deprecated = false - result.idempotency_level = google_protobuf_MethodOptions_IdempotencyLevel.IDEMPOTENCY_UNKNOWN - 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.IDEMPOTENCY_UNKNOWN - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - adduninterpreted_option(result, newgoogle_protobuf_UninterpretedOption(data)) - else: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - setoptions(result, newgoogle_protobuf_MethodOptions(data)) - of 5: - expectWireType(wireType, WireType.Varint) - setclient_streaming(result, readBool(stream)) - of 6: - expectWireType(wireType, WireType.Varint) - setserver_streaming(result, readBool(stream)) - else: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - addfmethod(result, newgoogle_protobuf_MethodDescriptorProto(data)) - of 3: - expectWireType(wireType, WireType.LengthDelimited) - let data = readLengthDelimited(stream) - setoptions(result, newgoogle_protobuf_ServiceOptions(data)) - else: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - addmessage_type(result, newgoogle_protobuf_DescriptorProto(data)) - of 5: - expectWireType(wireType, WireType.LengthDelimited) - let data = readLengthDelimited(stream) - addenum_type(result, newgoogle_protobuf_EnumDescriptorProto(data)) - of 6: - expectWireType(wireType, WireType.LengthDelimited) - let data = readLengthDelimited(stream) - addservice(result, newgoogle_protobuf_ServiceDescriptorProto(data)) - of 7: - expectWireType(wireType, WireType.LengthDelimited) - let data = readLengthDelimited(stream) - addextension(result, newgoogle_protobuf_FieldDescriptorProto(data)) - of 8: - expectWireType(wireType, WireType.LengthDelimited) - let data = readLengthDelimited(stream) - setoptions(result, newgoogle_protobuf_FileOptions(data)) - of 9: - expectWireType(wireType, WireType.LengthDelimited) - let data = readLengthDelimited(stream) - setsource_code_info(result, newgoogle_protobuf_SourceCodeInfo(data)) - of 12: - expectWireType(wireType, WireType.LengthDelimited) - setsyntax(result, readString(stream)) - else: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - addfile(result, newgoogle_protobuf_FileDescriptorProto(data)) - else: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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: readUnknownField(stream, tag, result.unknownFields) - -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.unknownFields = @[] - 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) - writeUnknownFields(stream, message.unknownFields) - -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 data = readLengthDelimited(stream) - addannotation(result, newgoogle_protobuf_GeneratedCodeInfo_Annotation(data)) - else: readUnknownField(stream, tag, result.unknownFields) - -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/plugin.nim b/src/nimpb_buildpkg/plugin.nim deleted file mode 100644 index abdad07..0000000 --- a/src/nimpb_buildpkg/plugin.nim +++ /dev/null @@ -1,1084 +0,0 @@ -import algorithm -import os -import pegs -import sequtils -import sets -import strformat -import strutils -import tables - -import descriptor_pb - -import nimpb/nimpb - -type - Names = distinct seq[string] - - Enum = ref object - names: Names - values: seq[tuple[name: string, number: int]] - defaultValue: string - - Field = ref object - number: int - name: string - label: google_protobuf_FieldDescriptorProto_Label - ftype: google_protobuf_FieldDescriptorProto_Type - typeName: string - packed: bool - oneof: Oneof - mapEntry: Message - defaultValue: string - message: Message - jsonName: string - - Message = ref object - names: Names - fields: seq[Field] - oneofs: seq[Oneof] - mapEntry: bool - file: ProtoFile - - Oneof = ref object - name: string - fields: seq[Field] - - ProcessedFile = ref object - name: string - data: string - - ProtoFile = ref object - fdesc: google_protobuf_FileDescriptorProto - enums: seq[Enum] - messages: seq[Message] - syntax: Syntax - dependencies: seq[ProtoFile] - serviceGenerator: ServiceGenerator - - Syntax {.pure.} = enum - Proto2 - Proto3 - - ServiceGenerator* = proc (service: Service): string - - Service* = ref object - name*: string - package*: string - methods*: seq[ServiceMethod] - - ServiceMethod* = ref object - name*: string - inputType*: string - outputType*: string - clientStreaming*: bool - serverStreaming*: bool - -when defined(debug): - proc log(msg: string) = - stderr.write(msg) - stderr.write("\n") -else: - proc log(msg: string) = discard - -proc initNamesFromTypeName(typename: string): Names = - if typename[0] != '.': - raise newException(Exception, "relative names not supported") - let parts = split(typename[1..^1], ".") - result = Names(parts) - -proc `$`(names: Names): string = - let n = seq[string](names) - result = join(n, "_") - -proc add(names: var Names, s: string) = - add(seq[string](names), s) - -proc `&`(names: Names, s: string): Names = - result = names - add(result, s) - -proc isRepeated(field: Field): bool = - result = field.label == google_protobuf_FieldDescriptorProtoLabel.LabelRepeated - -proc isMessage(field: Field): bool = - result = field.ftype == google_protobuf_FieldDescriptorProtoType.TypeMessage - -proc isEnum(field: Field): bool = - result = field.ftype == google_protobuf_FieldDescriptorProtoType.TypeEnum - -proc isNumeric(field: Field): bool = - case field.ftype - 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 - -proc isMapEntry(message: Message): bool = - result = message.mapEntry - -proc isMapEntry(field: Field): bool = - result = field.mapEntry != nil - -proc nimTypeName(field: Field): string = - case field.ftype - 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: - if f.name == "key": - return f.nimTypeName - -proc mapValueField(field: Field): Field = - for f in field.mapEntry.fields: - if f.name == "value": - return f - -proc mapValueType(field: Field): string = - for f in field.mapEntry.fields: - if f.name == "value": - return f.nimTypeName - -proc `$`(ft: google_protobuf_FieldDescriptorProtoType): string = - case ft - 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(ftype: google_protobuf_FieldDescriptorProto_Type): string = - case ftype - 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 = "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 findEnum(file: ProtoFile, typeName: string): Enum = - for e in file.enums: - if $e.names == typeName: - return e - for dep in file.dependencies: - result = findEnum(dep, typeName) - if result != nil: - break - -proc defaultValue(field: Field): string = - if field.defaultValue != nil: - if isEnum(field): - return &"{field.typeName}.{field.defaultValue}" - elif field.ftype == google_protobuf_FieldDescriptorProtoType.TypeString: - return escape(field.defaultValue) - else: - return field.defaultValue - elif isMapEntry(field): - return &"newTable[{field.mapKeyType}, {field.mapValueType}]()" - elif isRepeated(field): - return "@[]" - elif isEnum(field): - let e = findEnum(field.message.file, field.typeName) - if e != nil: - result = e.defaultValue - else: - result = &"cast[{field.typeName}](0)" - else: - result = defaultValue(field.ftype) - -proc wiretypeStr(field: Field): string = - result = "WireType." - case field.ftype - 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 - -proc isKeyword(s: string): bool = - case s - of "addr", "and", "as", "asm", "bind", "block", "break", "case", "cast", - "concept", "const", "continue", "converter", "defer", "discard", - "distinct", "div", "do", "elif", "else", "end", "enum", "except", - "export", "finally", "for", "from", "func", "if", "import", "in", - "include", "interface", "is", "isnot", "iterator", "let", "macro", - "method", "mixin", "mod", "nil", "not", "notin", "object", "of", "or", - "out", "proc", "ptr", "raise", "ref", "return", "shl", "shr", "static", - "template", "try", "tuple", "type", "using", "var", "when", "while", - "xor", "yield": - result = true - else: - result = false - -proc writeProc(field: Field): string = - if isMapEntry(field): - result = &"write{field.typeName}KV" - elif isMessage(field): - result = "writeMessage" - elif isEnum(field): - result = "writeEnum" - else: - result = &"write{field.typeName}" - -proc readProc(field: Field): string = - if isMapEntry(field): - result = &"read{field.typeName}KV" - elif isEnum(field): - result = &"readEnum[{field.typeName}]" - else: - result = &"read{field.typeName}" - -proc sizeOfProc(field: Field): string = - if isMapEntry(field): - result = &"sizeOf{field.typeName}KV" - elif isEnum(field): - result = &"sizeOfEnum[{field.typeName}]" - else: - result = &"sizeOf{field.typeName}" - -proc newField(file: ProtoFile, message: Message, desc: google_protobuf_FieldDescriptorProto): Field = - new(result) - - result.name = desc.name - result.number = desc.number - result.label = desc.label - result.ftype = desc.ftype - result.typeName = "" - result.packed = false - result.mapEntry = nil - result.message = message - - # Identifiers cannot start/end with underscore - removePrefix(result.name, '_') - removeSuffix(result.name, '_') - - # Consecutive underscores are not allowed - result.name = replace(result.name, peg"'_' '_'+", "_") - - if isKeyword(result.name): - result.name = "f" & result.name - - if isRepeated(result) and isNumeric(result): - if hasOptions(desc): - if hasPacked(desc.options): - result.packed = desc.options.packed - else: - result.packed = - if file.syntax == Syntax.Proto2: - false - else: - true - else: - result.packed = - if file.syntax == Syntax.Proto2: - false - else: - true - - if hasOneof_index(desc): - result.oneof = message.oneofs[desc.oneof_index] - add(result.oneof.fields, result) - - if isMessage(result) or isEnum(result): - result.typeName = $initNamesFromTypeName(desc.type_name) - else: - result.typeName = $result.ftype - - if hasDefaultValue(desc): - result.defaultValue = desc.default_value - - if hasJsonName(desc): - result.jsonName = desc.jsonName - - log(&"newField {result.name} {$result.ftype} {result.typeName} PACKED={result.packed} SYNTAX={file.syntax}") - -proc newOneof(name: string): Oneof = - new(result) - result.fields = @[] - result.name = name - -proc newMessage(file: ProtoFile, names: Names, desc: google_protobuf_DescriptorProto): Message = - new(result) - - result.names = names - result.fields = @[] - result.oneofs = @[] - result.mapEntry = false - result.file = file - - if hasOptions(desc) and hasMapEntry(desc.options): - result.mapEntry = desc.options.mapEntry - - log(&"newMessage {$result.names}") - - for oneof in desc.oneof_decl: - add(result.oneofs, newOneof(oneof.name)) - - for field in desc.field: - add(result.fields, newField(file, result, field)) - -proc fixMapEntry(file: ProtoFile, message: Message): bool = - for field in message.fields: - for msg in file.messages: - if $msg.names == field.typeName: - if msg.mapEntry: - log(&"fixing map {field.name} {msg.names}") - field.mapEntry = msg - result = true - -proc newEnum(names: Names, desc: google_protobuf_EnumDescriptorProto): Enum = - new(result) - - result.names = names & desc.name - result.values = @[] - - log(&"newEnum {$result.names}") - - for value in desc.value: - add(result.values, (value.name, int(value.number))) - - result.defaultValue = &"{result.names}.{result.values[0].name}" - - type EnumValue = tuple[name: string, number: int] - - sort(result.values, proc (x, y: EnumValue): int = - system.cmp(x.number, y.number) - ) - -proc newService(service: google_protobuf_ServiceDescriptorProto, - file: ProtoFile): Service = - new(result) - result.name = service.name - result.package = file.fdesc.package - result.methods = @[] - - for meth in service.fmethod: - var m: ServiceMethod - new(m) - - m.name = meth.name - m.inputType = $initNamesFromTypeName(meth.inputType) - m.outputType = $initNamesFromTypeName(meth.outputType) - m.clientStreaming = meth.clientStreaming - m.serverStreaming = meth.serverStreaming - - add(result.methods, m) - -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)) - - while len(stack) > 0: - let (names, submsg) = pop(stack) - - let subnames = names & submsg.name - yield (subnames, submsg) - - for desc in submsg.nested_type: - add(stack, (subnames, desc)) - -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) - - for x in messages(desc, subnames): - yield x - -proc quoteReserved(name: string): string = - case name - of "type": result = &"`{name}`" - else: result = name - -proc accessor(field: Field): string = - if field.oneof != nil: - result = &"{field.oneof.name}.{quoteReserved(field.name)}" - else: - result = quoteReserved(field.name) - -proc dependencies(field: Field): seq[string] = - result = @[] - - if isMessage(field) or isEnum(field): - add(result, field.typeName) - -proc dependencies(message: Message): seq[string] = - result = @[] - - for field in message.fields: - add(result, dependencies(field)) - -proc toposort(graph: TableRef[string, HashSet[string]]): seq[string] = - type State = enum Unknown, Gray, Black - - var - enter = toSeq(keys(graph)) - state = newTable[string, State]() - order: seq[string] = @[] - - proc dfs(node: string) = - state[node] = Gray - if node in graph: - for k in graph[node]: - let sk = - if k in state: - state[k] - else: - Unknown - - if sk == Gray: - # cycle - continue - elif sk == Black: - continue - - let idx = find(enter, k) - if idx != -1: - delete(enter, idx) - - dfs(k) - insert(order, node, 0) - state[node] = Black - - while len(enter) > 0: - dfs(pop(enter)) - - result = order - -iterator sortDependencies(messages: seq[Message]): Message = - let - deps = newTable[string, HashSet[string]]() - byname = newTable[string, Message]() - - for message in messages: - deps[$message.names] = toSet(dependencies(message)) - byname[$message.names] = message - - let order = reversed(toposort(deps)) - - for name in order: - if name in byname: - yield byname[name] - -proc parseFile(name: string, fdesc: google_protobuf_FileDescriptorProto): ProtoFile = - log(&"parsing {name}") - - new(result) - - result.fdesc = fdesc - result.messages = @[] - result.enums = @[] - result.dependencies = @[] - - if hasSyntax(fdesc): - if fdesc.syntax == "proto2": - result.syntax = Syntax.Proto2 - elif fdesc.syntax == "proto3": - result.syntax = Syntax.Proto3 - else: - raise newException(Exception, "unrecognized syntax: " & fdesc.syntax) - else: - result.syntax = Syntax.Proto2 - - let basename = - if hasPackage(fdesc): - Names(split(fdesc.package, ".")) - else: - Names(@[]) - - for e in fdesc.enum_type: - add(result.enums, newEnum(basename, e)) - - for name, message in messages(fdesc, basename): - add(result.messages, newMessage(result, name, message)) - - for e in message.enum_type: - add(result.enums, newEnum(name, e)) - -proc addLine(s: var string, line: string) = - if not isNilOrWhitespace(line): - s &= line - s &= "\n" - -iterator genType(e: Enum): string = - yield &"{e.names}* {{.pure.}} = enum" - for item in e.values: - let (name, number) = item - yield indent(&"{name} = {number}", 4) - -proc fullType(field: Field): string = - if isMapEntry(field): - result = &"TableRef[{field.mapKeyType}, {field.mapValueType}]" - else: - result = field.nimTypeName - if isRepeated(field): - result = &"seq[{result}]" - -proc mapKeyField(message: Message): Field = - for field in message.fields: - if field.name == "key": - return field - -proc mapValueField(message: Message): Field = - for field in message.fields: - if field.name == "value": - return field - -iterator genType(message: Message): string = - if not isMapEntry(message): - yield &"{message.names}* = ref {message.names}Obj" - yield &"{message.names}Obj* = object of RootObj" - yield indent(&"hasField: IntSet", 4) - yield indent(&"unknownFields: seq[UnknownField]", 4) - - for field in message.fields: - if isMapEntry(field): - yield indent(&"{field.name}: TableRef[{mapKeyType(field)}, {mapValueType(field)}]", 4) - elif field.oneof == nil: - yield indent(&"{quoteReserved(field.name)}: {field.fullType}", 4) - - for oneof in message.oneofs: - yield indent(&"{oneof.name}: {message.names}_{oneof.name}_OneOf", 4) - - for oneof in message.oneofs: - yield "" - yield &"{message.names}_{oneof.name}_OneOf* {{.union.}} = object" - for field in oneof.fields: - yield indent(&"{quoteReserved(field.name)}: {field.fullType}", 4) - -iterator genNewMessageProc(msg: Message): string = - yield &"proc new{msg.names}*(): {msg.names} =" - yield indent("new(result)", 4) - yield indent("result.hasField = initIntSet()", 4) - yield indent("result.unknownFields = @[]", 4) - for field in msg.fields: - yield indent(&"result.{field.accessor} = {defaultValue(field)}", 4) - yield "" - -iterator oneofSiblings(field: Field): Field = - if field.oneof != nil: - for sibling in field.oneof.fields: - if sibling == field: - continue - yield sibling - -iterator genClearFieldProc(msg: Message, field: Field): string = - yield &"proc clear{field.name}*(message: {msg.names}) =" - yield indent(&"message.{field.accessor} = {defaultValue(field)}", 4) - var numbers: seq[int] = @[field.number] - for sibling in oneofSiblings(field): - add(numbers, sibling.number) - yield indent(&"excl(message.hasField, [{join(numbers, \", \")}])", 4) - yield "" - -iterator genHasFieldProc(msg: Message, field: Field): string = - yield &"proc has{field.name}*(message: {msg.names}): bool =" - var check = indent(&"result = contains(message.hasField, {field.number})", 4) - if isRepeated(field) or isMapEntry(field): - check = &"{check} or (len(message.{field.accessor}) > 0)" - yield check - yield "" - -iterator genSetFieldProc(msg: Message, field: Field): string = - yield &"proc set{field.name}*(message: {msg.names}, value: {field.fullType}) =" - yield indent(&"message.{field.accessor} = value", 4) - yield indent(&"incl(message.hasField, {field.number})", 4) - var numbers: seq[int] = @[] - for sibling in oneofSiblings(field): - add(numbers, sibling.number) - if len(numbers) > 0: - yield indent(&"excl(message.hasField, [{join(numbers, \", \")}])", 4) - yield "" - -iterator genAddToFieldProc(msg: Message, field: Field): string = - yield &"proc add{field.name}*(message: {msg.names}, value: {field.nimTypeName}) =" - yield indent(&"add(message.{field.name}, value)", 4) - yield indent(&"incl(message.hasField, {field.number})", 4) - yield "" - -iterator genFieldAccessorProcs(msg: Message, field: Field): string = - yield &"proc {quoteReserved(field.name)}*(message: {msg.names}): {field.fullType} {{.inline.}} =" - yield indent(&"message.{field.accessor}", 4) - yield "" - - yield &"proc `{field.name}=`*(message: {msg.names}, value: {field.fullType}) {{.inline.}} =" - yield indent(&"set{field.name}(message, value)", 4) - yield "" - -iterator genWriteMapKVProc(msg: Message): string = - let - key = mapKeyField(msg) - value = mapValueField(msg) - - yield &"proc write{msg.names}KV(stream: ProtobufStream, key: {key.fullType}, value: {value.fullType}) =" - yield indent(&"{key.writeProc}(stream, key, {key.number})", 4) - yield indent(&"{value.writeProc}(stream, value, {value.number})", 4) - yield "" - -iterator genWriteMessageProc(msg: Message): string = - yield &"proc write{msg.names}*(stream: ProtobufStream, message: {msg.names}) =" - - for field in msg.fields: - if isMapEntry(field): - yield indent(&"for key, value in message.{field.name}:", 4) - yield indent(&"writeTag(stream, {field.number}, {wiretypeStr(field)})", 8) - yield indent(&"writeVarint(stream, {field.sizeOfProc}(key, value))", 8) - yield indent(&"{field.writeProc}(stream, key, value)", 8) - elif isRepeated(field): - if field.packed: - yield indent(&"if has{field.name}(message):", 4) - yield indent(&"writeTag(stream, {field.number}, WireType.LengthDelimited)", 8) - yield indent(&"writeVarint(stream, packedFieldSize(message.{field.name}, {field.fieldTypeStr}))", 8) - yield indent(&"for value in message.{field.name}:", 8) - yield indent(&"{field.writeProc}(stream, value)", 12) - else: - yield indent(&"for value in message.{field.name}:", 4) - yield indent(&"{field.writeProc}(stream, value, {field.number})", 8) - else: - yield indent(&"if has{field.name}(message):", 4) - yield indent(&"{field.writeProc}(stream, message.{field.accessor}, {field.number})", 8) - - yield indent("writeUnknownFields(stream, message.unknownFields)", 4) - - yield "" - -iterator genReadMapKVProc(msg: Message): string = - let - key = mapKeyField(msg) - value = mapValueField(msg) - - yield &"proc read{msg.names}KV(stream: ProtobufStream, tbl: TableRef[{key.fullType}, {value.fullType}]) =" - - yield indent(&"var", 4) - yield indent(&"key: {key.fullType}", 8) - yield indent("gotKey = false", 8) - yield indent(&"value: {value.fullType}", 8) - yield indent("gotValue = false", 8) - yield indent("while not atEnd(stream):", 4) - yield indent("let", 8) - yield indent("tag = readTag(stream)", 12) - yield indent("wireType = wireType(tag)", 12) - yield indent("case fieldNumber(tag)", 8) - yield indent(&"of {key.number}:", 8) - yield indent(&"key = {key.readProc}(stream)", 12) - yield indent("gotKey = true", 12) - yield indent(&"of {value.number}:", 8) - if isMessage(value): - yield indent("let", 12) - yield indent("size = readVarint(stream)", 16) - yield indent("data = safeReadStr(stream, int(size))", 16) - yield indent("pbs = newProtobufStream(newStringStream(data))", 16) - yield indent(&"value = {value.readProc}(pbs)", 12) - else: - yield indent(&"value = {value.readProc}(stream)", 12) - yield indent("gotValue = true", 12) - yield indent("else: skipField(stream, wireType)", 8) - yield indent("if not gotKey:", 4) - yield indent(&"raise newException(Exception, \"missing key\")", 8) - yield indent("if not gotValue:", 4) - yield indent(&"raise newException(Exception, \"missing value\")", 8) - yield indent("tbl[key] = value", 4) - yield "" - -iterator genReadMessageProc(msg: Message): string = - yield &"proc read{msg.names}*(stream: ProtobufStream): {msg.names} =" - yield indent(&"result = new{msg.names}()", 4) - yield indent("while not atEnd(stream):", 4) - yield indent("let", 8) - yield indent("tag = readTag(stream)", 12) - yield indent("wireType = wireType(tag)", 12) - yield indent("case fieldNumber(tag)", 8) - yield indent("of 0:", 8) - yield indent("raise newException(InvalidFieldNumberError, \"Invalid field number: 0\")", 12) - for field in msg.fields: - let - setter = - if isRepeated(field): - &"add{field.name}" - else: - &"set{field.name}" - yield indent(&"of {field.number}:", 8) - if isRepeated(field): - if isMapEntry(field): - yield indent(&"expectWireType(wireType, {field.wiretypeStr})", 12) - yield indent("let", 12) - yield indent("size = readVarint(stream)", 16) - yield indent("data = safeReadStr(stream, int(size))", 16) - yield indent("pbs = newProtobufStream(newStringStream(data))", 16) - yield indent(&"{field.readProc}(pbs, result.{field.name})", 12) - elif isNumeric(field): - yield indent(&"expectWireType(wireType, {field.wiretypeStr}, WireType.LengthDelimited)", 12) - yield indent("if wireType == WireType.LengthDelimited:", 12) - yield indent("let", 16) - yield indent("size = readVarint(stream)", 20) - yield indent("start = uint64(getPosition(stream))", 20) - yield indent("var consumed = 0'u64", 16) - yield indent("while consumed < size:", 16) - yield indent(&"{setter}(result, {field.readProc}(stream))", 20) - yield indent("consumed = uint64(getPosition(stream)) - start", 20) - yield indent("if consumed != size:", 16) - yield indent("raise newException(Exception, \"packed field size mismatch\")", 20) - yield indent("else:", 12) - yield indent(&"{setter}(result, {field.readProc}(stream))", 16) - elif isMessage(field): - yield indent(&"expectWireType(wireType, {field.wiretypeStr})", 12) - yield indent(&"let data = readLengthDelimited(stream)", 12) - yield indent(&"{setter}(result, new{field.typeName}(data))", 12) - else: - yield indent(&"expectWireType(wireType, {field.wiretypeStr})", 12) - yield indent(&"{setter}(result, {field.readProc}(stream))", 12) - else: - yield indent(&"expectWireType(wireType, {field.wiretypeStr})", 12) - if isMessage(field): - yield indent("let data = readLengthDelimited(stream)", 12) - yield indent(&"{setter}(result, new{field.typeName}(data))", 12) - else: - yield indent(&"{setter}(result, {field.readProc}(stream))", 12) - yield indent("else: readUnknownField(stream, tag, result.unknownFields)", 8) - yield "" - -iterator genSizeOfMapKVProc(message: Message): string = - let - key = mapKeyField(message) - value = mapValueField(message) - - yield &"proc sizeOf{message.names}KV(key: {key.fullType}, value: {value.fullType}): uint64 =" - - # Key (cannot be message or other complex field) - yield indent(&"result = result + sizeOfTag({key.number}, {key.wiretypeStr})", 4) - yield indent(&"result = result + {key.sizeOfProc}(key)", 4) - - # Value - yield indent(&"result = result + sizeOfTag({value.number}, {value.wiretypeStr})", 4) - if isMessage(value): - yield indent(&"result = result + sizeOfLengthDelimited({value.sizeOfProc}(value))", 4) - else: - yield indent(&"result = result + {value.sizeOfProc}(value)", 4) - - yield "" - -iterator genSizeOfMessageProc(msg: Message): string = - yield &"proc sizeOf{msg.names}*(message: {msg.names}): uint64 =" - for field in msg.fields: - if isMapEntry(field): - yield indent(&"if has{field.name}(message):", 4) - yield indent(&"var sizeOfKV = 0'u64", 8) - yield indent(&"for key, value in message.{field.name}:", 8) - yield indent(&"sizeOfKV = sizeOfKV + {field.sizeOfProc}(key, value)", 12) - yield indent(&"result = result + sizeOfTag({field.number}, {field.wiretypeStr})", 8) - yield indent(&"result = result + sizeOfLengthDelimited(sizeOfKV)", 8) - elif isRepeated(field): - if isNumeric(field): - yield indent(&"if has{field.name}(message):", 4) - yield indent(&"result = result + sizeOfTag({field.number}, WireType.LengthDelimited)", 8) - yield indent(&"result = result + sizeOfLengthDelimited(packedFieldSize(message.{field.name}, {field.fieldTypeStr}))", 8) - else: - yield indent(&"for value in message.{field.name}:", 4) - yield indent(&"result = result + sizeOfTag({field.number}, {field.wiretypeStr})", 8) - if isMessage(field): - yield indent(&"result = result + sizeOfLengthDelimited({field.sizeOfProc}(value))", 8) - else: - yield indent(&"result = result + {field.sizeOfProc}(value)", 8) - else: - yield indent(&"if has{field.name}(message):", 4) - yield indent(&"result = result + sizeOfTag({field.number}, {field.wiretypeStr})", 8) - if isMessage(field): - yield indent(&"result = result + sizeOfLengthDelimited({field.sizeOfProc}(message.{field.accessor}))", 8) - else: - yield indent(&"result = result + {field.sizeOfProc}(message.{field.accessor})", 8) - - yield indent("for field in message.unknownFields:", 4) - yield indent("result = result + sizeOfUnknownField(field)", 8) - - yield "" - -proc shouldGenerateJsonProcs(typeName: string): bool = - const wktsHavingCustomProcs = [ - "google_protobuf_Any", - "google_protobuf_BoolValue", - "google_protobuf_BytesValue", - "google_protobuf_DoubleValue", - "google_protobuf_Duration", - "google_protobuf_FieldMask", - "google_protobuf_FloatValue", - "google_protobuf_Int32Value", - "google_protobuf_Int64Value", - "google_protobuf_ListValue", - "google_protobuf_NullValue", - "google_protobuf_StringValue", - "google_protobuf_Struct", - "google_protobuf_Timestamp", - "google_protobuf_UInt32Value", - "google_protobuf_UInt64Value", - "google_protobuf_Value", - ] - - return typeName notin wktsHavingCustomProcs - -iterator genMessageToJsonProc(msg: Message): string = - yield &"proc toJson*(message: {msg.names}): JsonNode =" - yield indent("result = newJObject()", 4) - - proc fieldToJson(field: Field, v: string): string = - case field.ftype - of google_protobuf_FieldDescriptorProto_Type.TypeMessage, - google_protobuf_FieldDescriptorProto_Type.TypeInt64, - google_protobuf_FieldDescriptorProto_Type.TypeUInt64, - google_protobuf_FieldDescriptorProto_Type.TypeSFixed64, - google_protobuf_FieldDescriptorProto_Type.TypeFixed64, - google_protobuf_FieldDescriptorProto_Type.TypeDouble, - google_protobuf_FieldDescriptorProto_Type.TypeFloat: - result = &"toJson({v})" - of google_protobuf_FieldDescriptorProto_Type.TypeEnum: - result = &"%(${v})" - else: - result = &"%{v}" - - for field in msg.fields: - yield indent(&"if has{field.name}(message):", 4) - if isMapEntry(field): - yield indent("let obj = newJObject()", 8) - yield indent(&"for key, value in message.{field.name}:", 8) - let f = mapValueField(field) - let j = fieldToJson(f, "value") - yield indent(&"obj[$key] = {j}", 12) - yield indent(&"result[\"{field.jsonName}\"] = obj", 8) - elif isRepeated(field): - yield indent(&"let arr = newJArray()", 8) - yield indent(&"for value in message.{field.name}:", 8) - let v = fieldToJson(field, "value") - yield indent(&"add(arr, {v})", 12) - yield indent(&"result[\"{field.jsonName}\"] = arr", 8) - else: - let v = fieldToJson(field, &"message.{field.name}") - yield indent(&"result[\"{field.jsonName}\"] = {v}", 8) - - yield "" - -iterator genMessageProcForwards(msg: Message): string = - # TODO: can we be more intelligent and only forward declare the minimum set - # of procs? - if not isMapEntry(msg): - yield &"proc new{msg.names}*(): {msg.names}" - yield &"proc new{msg.names}*(data: string): {msg.names}" - yield &"proc write{msg.names}*(stream: ProtobufStream, message: {msg.names})" - yield &"proc read{msg.names}*(stream: ProtobufStream): {msg.names}" - yield &"proc sizeOf{msg.names}*(message: {msg.names}): uint64" - if shouldGenerateJsonProcs($msg.names): - yield &"proc toJson*(message: {msg.names}): JsonNode" - else: - let - key = mapKeyField(msg) - value = mapValueField(msg) - - yield &"proc write{msg.names}KV(stream: ProtobufStream, key: {key.fullType}, value: {value.fullType})" - yield &"proc read{msg.names}KV(stream: ProtobufStream, tbl: TableRef[{key.fullType}, {value.fullType}])" - yield &"proc sizeOf{msg.names}KV(key: {key.fullType}, value: {value.fullType}): uint64" - -iterator genProcs(msg: Message): string = - if isMapEntry(msg): - for line in genSizeOfMapKVProc(msg): yield line - for line in genWriteMapKVProc(msg): yield line - for line in genReadMapKVProc(msg): yield line - else: - for line in genNewMessageProc(msg): yield line - - for field in msg.fields: - for line in genClearFieldProc(msg, field): yield line - for line in genHasFieldProc(msg, field): yield line - for line in genSetFieldProc(msg, field): yield line - - if isRepeated(field) and not isMapEntry(field): - for line in genAddToFieldProc(msg, field): yield line - - for line in genFieldAccessorProcs(msg, field): yield line - - for line in genSizeOfMessageProc(msg): yield line - for line in genWriteMessageProc(msg): yield line - for line in genReadMessageProc(msg): yield line - - if shouldGenerateJsonProcs($msg.names): - for line in genMessageToJsonProc(msg): yield line - - yield &"proc serialize*(message: {msg.names}): string =" - yield indent("let", 4) - yield indent("ss = newStringStream()", 8) - yield indent("pbs = newProtobufStream(ss)", 8) - yield indent(&"write{msg.names}(pbs, message)", 4) - yield indent("result = ss.data", 4) - yield "" - - yield &"proc new{msg.names}*(data: string): {msg.names} =" - yield indent("let", 4) - yield indent("ss = newStringStream(data)", 8) - yield indent("pbs = newProtobufStream(ss)", 8) - yield indent(&"result = read{msg.names}(pbs)", 4) - yield "" - -proc processFile(fdesc: google_protobuf_FileDescriptorProto, - otherFiles: TableRef[string, ProtoFile], - serviceGenerator: ServiceGenerator): ProcessedFile = - var (dir, name, _) = splitFile(fdesc.name) - var pbfilename = (dir / name) & "_pb.nim" - - log(&"processing {fdesc.name}: {pbfilename}") - - new(result) - result.name = pbfilename - result.data = "" - - let parsed = parseFile(fdesc.name, fdesc) - - for dep in fdesc.dependency: - if dep in otherFiles: - add(parsed.dependencies, otherFiles[dep]) - - var hasMaps = false - for message in parsed.messages: - let tmp = fixMapEntry(parsed, message) - if tmp: - hasMaps = true - - addLine(result.data, "# Generated by protoc_gen_nim. Do not edit!") - addLine(result.data, "") - addLine(result.data, "import base64") - addLine(result.data, "import intsets") - addLine(result.data, "import json") - if hasMaps: - addLine(result.data, "import tables") - addLine(result.data, "export tables") - addLine(result.data, "") - addLine(result.data, "import nimpb/nimpb") - addLine(result.data, "import nimpb/json as nimpb_json") - addLine(result.data, "") - - for dep in fdesc.dependency: - var (dir, depname, _) = splitFile(dep) - - if dir == "google/protobuf": - dir = "nimpb/wkt" - - var deppbname = (dir / depname) & "_pb" - addLine(result.data, &"import {deppbname}") - - if hasDependency(fdesc): - addLine(result.data, "") - - addLine(result.data, "type") - - for e in parsed.enums: - for line in genType(e): addLine(result.data, indent(line, 4)) - - for message in parsed.messages: - for line in genType(message): addLine(result.data, indent(line, 4)) - - addLine(result.data, "") - - for message in sortDependencies(parsed.messages): - for line in genMessageProcForwards(message): - addLine(result.data, line) - addLine(result.data, "") - - for message in sortDependencies(parsed.messages): - for line in genProcs(message): - addLine(result.data, line) - addLine(result.data, "") - - if serviceGenerator != nil: - for serviceDesc in fdesc.service: - let service = newService(serviceDesc, parsed) - addLine(result.data, "") - add(result.data, serviceGenerator(service)) - -proc processFileDescriptorSet*(filename: string, - outdir: string, - protos: openArray[string], - serviceGenerator: ServiceGenerator) = - let s = newProtobufStream(newFileStream(filename, fmRead)) - - let fileSet = readgoogle_protobuf_FileDescriptorSet(s) - - var otherFiles = newTable[string, ProtoFile]() - - for file in fileSet.file: - add(otherFiles, file.name, parseFile(file.name, file)) - - # Protoc does not provide full paths for files in FileDescriptorSet. So it - # can be that fileSet.file.name might match any file in protos. So we will - # try to match the bare name and the named joined with the path of the first - # file. - let basePath = parentDir(protos[0]) - - for file in fileSet.file: - if (file.name in protos) or ((basePath / file.name) in protos): - let processedFile = processFile(file, otherFiles, serviceGenerator) - - let fullPath = outdir / processedFile.name - - createDir(parentDir(fullPath)) - - writeFile(fullPath, processedFile.data) diff --git a/src/nimpb_protoc.nim b/src/nimpb_protoc.nim new file mode 100644 index 0000000..951849a --- /dev/null +++ b/src/nimpb_protoc.nim @@ -0,0 +1,50 @@ +import os +import strformat + +when defined(windows): + const compilerId = "win32" +elif defined(linux): + when defined(i386): + const arch = "x86_32" + elif defined(amd64): + const arch = "x86_64" + elif defined(arm64): + const arch = "aarch_64" + else: + {.fatal:"unsupported architecture".} + const compilerId = "linux-" & arch +elif defined(macosx): + when defined(amd64): + const arch = "x86_64" + else: + {.fatal:"unsupported architecture".} + const compilerId = "osx-" & arch +else: + {.fatal:"unsupported platform".} + +when defined(windows): + const exeSuffix = ".exe" +else: + const exeSuffix = "" + +let + paths = @[ + # getAppDir() / "src" / "nimpb_protocpkg" / "protobuf", + # getAppDir() / "nimpb_protocpkg" / "protobuf", + parentDir(currentSourcePath()) / "nimpb_protocpkg" / "protobuf", + ] + +proc getCompilerPath*(): string = + let + compilerName = &"protoc-{compilerId}{exeSuffix}" + + for path in paths: + if fileExists(path / compilerName): + return path / compilerName + + raise newException(Exception, &"{compilerName} not found!") + +proc getProtoIncludeDir*(): string = + for path in paths: + if fileExists(path / "include"): + return path / "include" diff --git a/src/nimpb_buildpkg/protobuf/LICENSE b/src/nimpb_protocpkg/protobuf/LICENSE index f028c82..f028c82 100644 --- a/src/nimpb_buildpkg/protobuf/LICENSE +++ b/src/nimpb_protocpkg/protobuf/LICENSE diff --git a/src/nimpb_buildpkg/protobuf/include/google/protobuf/any.proto b/src/nimpb_protocpkg/protobuf/include/google/protobuf/any.proto index c748667..c748667 100644 --- a/src/nimpb_buildpkg/protobuf/include/google/protobuf/any.proto +++ b/src/nimpb_protocpkg/protobuf/include/google/protobuf/any.proto diff --git a/src/nimpb_buildpkg/protobuf/include/google/protobuf/api.proto b/src/nimpb_protocpkg/protobuf/include/google/protobuf/api.proto index f37ee2f..f37ee2f 100644 --- a/src/nimpb_buildpkg/protobuf/include/google/protobuf/api.proto +++ b/src/nimpb_protocpkg/protobuf/include/google/protobuf/api.proto diff --git a/src/nimpb_buildpkg/protobuf/include/google/protobuf/compiler/plugin.proto b/src/nimpb_protocpkg/protobuf/include/google/protobuf/compiler/plugin.proto index 5b55745..5b55745 100644 --- a/src/nimpb_buildpkg/protobuf/include/google/protobuf/compiler/plugin.proto +++ b/src/nimpb_protocpkg/protobuf/include/google/protobuf/compiler/plugin.proto diff --git a/src/nimpb_buildpkg/protobuf/include/google/protobuf/descriptor.proto b/src/nimpb_protocpkg/protobuf/include/google/protobuf/descriptor.proto index 8697a50..8697a50 100644 --- a/src/nimpb_buildpkg/protobuf/include/google/protobuf/descriptor.proto +++ b/src/nimpb_protocpkg/protobuf/include/google/protobuf/descriptor.proto diff --git a/src/nimpb_buildpkg/protobuf/include/google/protobuf/duration.proto b/src/nimpb_protocpkg/protobuf/include/google/protobuf/duration.proto index 975fce4..975fce4 100644 --- a/src/nimpb_buildpkg/protobuf/include/google/protobuf/duration.proto +++ b/src/nimpb_protocpkg/protobuf/include/google/protobuf/duration.proto diff --git a/src/nimpb_buildpkg/protobuf/include/google/protobuf/empty.proto b/src/nimpb_protocpkg/protobuf/include/google/protobuf/empty.proto index 03cacd2..03cacd2 100644 --- a/src/nimpb_buildpkg/protobuf/include/google/protobuf/empty.proto +++ b/src/nimpb_protocpkg/protobuf/include/google/protobuf/empty.proto diff --git a/src/nimpb_buildpkg/protobuf/include/google/protobuf/field_mask.proto b/src/nimpb_protocpkg/protobuf/include/google/protobuf/field_mask.proto index eb96ba0..eb96ba0 100644 --- a/src/nimpb_buildpkg/protobuf/include/google/protobuf/field_mask.proto +++ b/src/nimpb_protocpkg/protobuf/include/google/protobuf/field_mask.proto diff --git a/src/nimpb_buildpkg/protobuf/include/google/protobuf/source_context.proto b/src/nimpb_protocpkg/protobuf/include/google/protobuf/source_context.proto index f3b2c96..f3b2c96 100644 --- a/src/nimpb_buildpkg/protobuf/include/google/protobuf/source_context.proto +++ b/src/nimpb_protocpkg/protobuf/include/google/protobuf/source_context.proto diff --git a/src/nimpb_buildpkg/protobuf/include/google/protobuf/struct.proto b/src/nimpb_protocpkg/protobuf/include/google/protobuf/struct.proto index 7d7808e..7d7808e 100644 --- a/src/nimpb_buildpkg/protobuf/include/google/protobuf/struct.proto +++ b/src/nimpb_protocpkg/protobuf/include/google/protobuf/struct.proto diff --git a/src/nimpb_buildpkg/protobuf/include/google/protobuf/timestamp.proto b/src/nimpb_protocpkg/protobuf/include/google/protobuf/timestamp.proto index 06750ab..06750ab 100644 --- a/src/nimpb_buildpkg/protobuf/include/google/protobuf/timestamp.proto +++ b/src/nimpb_protocpkg/protobuf/include/google/protobuf/timestamp.proto diff --git a/src/nimpb_buildpkg/protobuf/include/google/protobuf/type.proto b/src/nimpb_protocpkg/protobuf/include/google/protobuf/type.proto index 624c15e..624c15e 100644 --- a/src/nimpb_buildpkg/protobuf/include/google/protobuf/type.proto +++ b/src/nimpb_protocpkg/protobuf/include/google/protobuf/type.proto diff --git a/src/nimpb_buildpkg/protobuf/include/google/protobuf/wrappers.proto b/src/nimpb_protocpkg/protobuf/include/google/protobuf/wrappers.proto index 0194763..0194763 100644 --- a/src/nimpb_buildpkg/protobuf/include/google/protobuf/wrappers.proto +++ b/src/nimpb_protocpkg/protobuf/include/google/protobuf/wrappers.proto diff --git a/src/nimpb_buildpkg/protobuf/protoc-linux-aarch_64 b/src/nimpb_protocpkg/protobuf/protoc-linux-aarch_64 Binary files differindex be19f78..be19f78 100755 --- a/src/nimpb_buildpkg/protobuf/protoc-linux-aarch_64 +++ b/src/nimpb_protocpkg/protobuf/protoc-linux-aarch_64 diff --git a/src/nimpb_buildpkg/protobuf/protoc-linux-x86_32 b/src/nimpb_protocpkg/protobuf/protoc-linux-x86_32 Binary files differindex 96516b5..96516b5 100755 --- a/src/nimpb_buildpkg/protobuf/protoc-linux-x86_32 +++ b/src/nimpb_protocpkg/protobuf/protoc-linux-x86_32 diff --git a/src/nimpb_buildpkg/protobuf/protoc-linux-x86_64 b/src/nimpb_protocpkg/protobuf/protoc-linux-x86_64 Binary files differindex 07689c0..07689c0 100755 --- a/src/nimpb_buildpkg/protobuf/protoc-linux-x86_64 +++ b/src/nimpb_protocpkg/protobuf/protoc-linux-x86_64 diff --git a/src/nimpb_buildpkg/protobuf/protoc-osx-x86_64 b/src/nimpb_protocpkg/protobuf/protoc-osx-x86_64 Binary files differindex 3996f4d..3996f4d 100755 --- a/src/nimpb_buildpkg/protobuf/protoc-osx-x86_64 +++ b/src/nimpb_protocpkg/protobuf/protoc-osx-x86_64 diff --git a/src/nimpb_buildpkg/protobuf/protoc-win32.exe b/src/nimpb_protocpkg/protobuf/protoc-win32.exe Binary files differindex 16bc9c3..16bc9c3 100755 --- a/src/nimpb_buildpkg/protobuf/protoc-win32.exe +++ b/src/nimpb_protocpkg/protobuf/protoc-win32.exe |
