From 39d9dca5b72b07833252050849b1f4b1dda1cb5d Mon Sep 17 00:00:00 2001 From: Oskari Timperi Date: Thu, 12 Apr 2018 18:20:01 +0300 Subject: Add a base type Message for messages --- nimpb/compiler/descriptor_pb.nim | 1593 ++++++++++++++++++++++-------------- nimpb/compiler/generator.nim | 24 +- nimpb/compiler/nimpb_build.nim.cfg | 1 + nimpb/nimpb.nim | 33 + 4 files changed, 1045 insertions(+), 606 deletions(-) create mode 100644 nimpb/compiler/nimpb_build.nim.cfg diff --git a/nimpb/compiler/descriptor_pb.nim b/nimpb/compiler/descriptor_pb.nim index 968ff57..b5460e4 100644 --- a/nimpb/compiler/descriptor_pb.nim +++ b/nimpb/compiler/descriptor_pb.nim @@ -1,8 +1,11 @@ # Generated by protoc_gen_nim. Do not edit! +import base64 import intsets +import json -import ../nimpb +import nimpb/nimpb +import nimpb/json as nimpb_json type google_protobuf_FieldDescriptorProto_Type* {.pure.} = enum @@ -45,14 +48,10 @@ type NO_SIDE_EFFECTS = 1 IDEMPOTENT = 2 google_protobuf_FileDescriptorSet* = ref google_protobuf_FileDescriptorSetObj - google_protobuf_FileDescriptorSetObj* = object of RootObj - hasField: IntSet - unknownFields: seq[UnknownField] + google_protobuf_FileDescriptorSetObj* = object of Message file: seq[google_protobuf_FileDescriptorProto] google_protobuf_FileDescriptorProto* = ref google_protobuf_FileDescriptorProtoObj - google_protobuf_FileDescriptorProtoObj* = object of RootObj - hasField: IntSet - unknownFields: seq[UnknownField] + google_protobuf_FileDescriptorProtoObj* = object of Message name: string package: string dependency: seq[string] @@ -66,9 +65,7 @@ type 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] + google_protobuf_DescriptorProtoObj* = object of Message name: string field: seq[google_protobuf_FieldDescriptorProto] extension: seq[google_protobuf_FieldDescriptorProto] @@ -80,27 +77,19 @@ type 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] + google_protobuf_DescriptorProto_ReservedRangeObj* = object of Message 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] + google_protobuf_DescriptorProto_ExtensionRangeObj* = object of Message 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] + google_protobuf_ExtensionRangeOptionsObj* = object of Message uninterpreted_option: seq[google_protobuf_UninterpretedOption] google_protobuf_FieldDescriptorProto* = ref google_protobuf_FieldDescriptorProtoObj - google_protobuf_FieldDescriptorProtoObj* = object of RootObj - hasField: IntSet - unknownFields: seq[UnknownField] + google_protobuf_FieldDescriptorProtoObj* = object of Message name: string number: int32 label: google_protobuf_FieldDescriptorProto_Label @@ -112,44 +101,32 @@ type 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] + google_protobuf_OneofDescriptorProtoObj* = object of Message name: string options: google_protobuf_OneofOptions google_protobuf_EnumDescriptorProto* = ref google_protobuf_EnumDescriptorProtoObj - google_protobuf_EnumDescriptorProtoObj* = object of RootObj - hasField: IntSet - unknownFields: seq[UnknownField] + google_protobuf_EnumDescriptorProtoObj* = object of Message 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] + google_protobuf_EnumDescriptorProto_EnumReservedRangeObj* = object of Message start: int32 fend: int32 google_protobuf_EnumValueDescriptorProto* = ref google_protobuf_EnumValueDescriptorProtoObj - google_protobuf_EnumValueDescriptorProtoObj* = object of RootObj - hasField: IntSet - unknownFields: seq[UnknownField] + google_protobuf_EnumValueDescriptorProtoObj* = object of Message 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] + google_protobuf_ServiceDescriptorProtoObj* = object of Message 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] + google_protobuf_MethodDescriptorProtoObj* = object of Message name: string input_type: string output_type: string @@ -157,9 +134,7 @@ type client_streaming: bool server_streaming: bool google_protobuf_FileOptions* = ref google_protobuf_FileOptionsObj - google_protobuf_FileOptionsObj* = object of RootObj - hasField: IntSet - unknownFields: seq[UnknownField] + google_protobuf_FileOptionsObj* = object of Message java_package: string java_outer_classname: string java_multiple_files: bool @@ -180,18 +155,14 @@ type 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] + google_protobuf_MessageOptionsObj* = object of Message 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] + google_protobuf_FieldOptionsObj* = object of Message ctype: google_protobuf_FieldOptions_CType packed: bool jstype: google_protobuf_FieldOptions_JSType @@ -200,40 +171,28 @@ type 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] + google_protobuf_OneofOptionsObj* = object of Message uninterpreted_option: seq[google_protobuf_UninterpretedOption] google_protobuf_EnumOptions* = ref google_protobuf_EnumOptionsObj - google_protobuf_EnumOptionsObj* = object of RootObj - hasField: IntSet - unknownFields: seq[UnknownField] + google_protobuf_EnumOptionsObj* = object of Message 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] + google_protobuf_EnumValueOptionsObj* = object of Message 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] + google_protobuf_ServiceOptionsObj* = object of Message 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] + google_protobuf_MethodOptionsObj* = object of Message 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] + google_protobuf_UninterpretedOptionObj* = object of Message name: seq[google_protobuf_UninterpretedOption_NamePart] identifier_value: string positive_int_value: uint64 @@ -242,34 +201,24 @@ type 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] + google_protobuf_UninterpretedOption_NamePartObj* = object of Message name_part: string is_extension: bool google_protobuf_SourceCodeInfo* = ref google_protobuf_SourceCodeInfoObj - google_protobuf_SourceCodeInfoObj* = object of RootObj - hasField: IntSet - unknownFields: seq[UnknownField] + google_protobuf_SourceCodeInfoObj* = object of Message 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] + google_protobuf_SourceCodeInfo_LocationObj* = object of Message 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] + google_protobuf_GeneratedCodeInfoObj* = object of Message 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] + google_protobuf_GeneratedCodeInfo_AnnotationObj* = object of Message path: seq[int32] source_file: string begin: int32 @@ -280,180 +229,206 @@ proc newgoogle_protobuf_UninterpretedOption_NamePart*(data: string): google_prot 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 toJson*(message: google_protobuf_UninterpretedOption_NamePart): JsonNode 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 toJson*(message: google_protobuf_UninterpretedOption): JsonNode 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 toJson*(message: google_protobuf_EnumValueOptions): JsonNode 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 toJson*(message: google_protobuf_EnumValueDescriptorProto): JsonNode 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 toJson*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange): JsonNode 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 toJson*(message: google_protobuf_EnumOptions): JsonNode 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 toJson*(message: google_protobuf_EnumDescriptorProto): JsonNode 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 toJson*(message: google_protobuf_ExtensionRangeOptions): JsonNode 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 toJson*(message: google_protobuf_SourceCodeInfo_Location): JsonNode 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 toJson*(message: google_protobuf_SourceCodeInfo): JsonNode 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 toJson*(message: google_protobuf_FieldOptions): JsonNode 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 toJson*(message: google_protobuf_FieldDescriptorProto): JsonNode 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 toJson*(message: google_protobuf_DescriptorProto_ExtensionRange): JsonNode 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 toJson*(message: google_protobuf_MessageOptions): JsonNode 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 toJson*(message: google_protobuf_OneofOptions): JsonNode 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 toJson*(message: google_protobuf_OneofDescriptorProto): JsonNode 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 toJson*(message: google_protobuf_DescriptorProto_ReservedRange): JsonNode 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 toJson*(message: google_protobuf_DescriptorProto): JsonNode 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 toJson*(message: google_protobuf_FileOptions): JsonNode 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 toJson*(message: google_protobuf_ServiceOptions): JsonNode 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 toJson*(message: google_protobuf_MethodOptions): JsonNode 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 toJson*(message: google_protobuf_MethodDescriptorProto): JsonNode 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 toJson*(message: google_protobuf_ServiceDescriptorProto): JsonNode 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 toJson*(message: google_protobuf_FileDescriptorProto): JsonNode 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 toJson*(message: google_protobuf_FileDescriptorSet): JsonNode 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 toJson*(message: google_protobuf_GeneratedCodeInfo_Annotation): JsonNode 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 toJson*(message: google_protobuf_GeneratedCodeInfo): JsonNode proc newgoogle_protobuf_UninterpretedOption_NamePart*(): google_protobuf_UninterpretedOption_NamePart = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.name_part = "" result.is_extension = false proc clearname_part*(message: google_protobuf_UninterpretedOption_NamePart) = message.name_part = "" - excl(message.hasField, [1]) + clearFields(message, [1]) proc hasname_part*(message: google_protobuf_UninterpretedOption_NamePart): bool = - result = contains(message.hasField, 1) + result = hasField(message, 1) proc setname_part*(message: google_protobuf_UninterpretedOption_NamePart, value: string) = message.name_part = value - incl(message.hasField, 1) + setField(message, 1) proc name_part*(message: google_protobuf_UninterpretedOption_NamePart): string {.inline.} = message.name_part @@ -463,14 +438,14 @@ proc `name_part=`*(message: google_protobuf_UninterpretedOption_NamePart, value: proc clearis_extension*(message: google_protobuf_UninterpretedOption_NamePart) = message.is_extension = false - excl(message.hasField, [2]) + clearFields(message, [2]) proc hasis_extension*(message: google_protobuf_UninterpretedOption_NamePart): bool = - result = contains(message.hasField, 2) + result = hasField(message, 2) proc setis_extension*(message: google_protobuf_UninterpretedOption_NamePart, value: bool) = message.is_extension = value - incl(message.hasField, 2) + setField(message, 2) proc is_extension*(message: google_protobuf_UninterpretedOption_NamePart): bool {.inline.} = message.is_extension @@ -485,13 +460,14 @@ proc sizeOfgoogle_protobuf_UninterpretedOption_NamePart*(message: google_protobu if hasis_extension(message): result = result + sizeOfTag(2, WireType.Varint) result = result + sizeOfBool(message.is_extension) + result = result + sizeOfUnknownFields(message) 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) + writeUnknownFields(stream, message) proc readgoogle_protobuf_UninterpretedOption_NamePart*(stream: ProtobufStream): google_protobuf_UninterpretedOption_NamePart = result = newgoogle_protobuf_UninterpretedOption_NamePart() @@ -508,7 +484,14 @@ proc readgoogle_protobuf_UninterpretedOption_NamePart*(stream: ProtobufStream): of 2: expectWireType(wireType, WireType.Varint) setis_extension(result, readBool(stream)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_UninterpretedOption_NamePart): JsonNode = + result = newJObject() + if hasname_part(message): + result["namePart"] = %message.name_part + if hasis_extension(message): + result["isExtension"] = %message.is_extension proc serialize*(message: google_protobuf_UninterpretedOption_NamePart): string = let @@ -526,8 +509,7 @@ proc newgoogle_protobuf_UninterpretedOption_NamePart*(data: string): google_prot proc newgoogle_protobuf_UninterpretedOption*(): google_protobuf_UninterpretedOption = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.name = @[] result.identifier_value = "" result.positive_int_value = 0 @@ -538,18 +520,18 @@ proc newgoogle_protobuf_UninterpretedOption*(): google_protobuf_UninterpretedOpt proc clearname*(message: google_protobuf_UninterpretedOption) = message.name = @[] - excl(message.hasField, [2]) + clearFields(message, [2]) proc hasname*(message: google_protobuf_UninterpretedOption): bool = - result = contains(message.hasField, 2) or (len(message.name) > 0) + result = hasField(message, 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) + setField(message, 2) proc addname*(message: google_protobuf_UninterpretedOption, value: google_protobuf_UninterpretedOption_NamePart) = add(message.name, value) - incl(message.hasField, 2) + setField(message, 2) proc name*(message: google_protobuf_UninterpretedOption): seq[google_protobuf_UninterpretedOption_NamePart] {.inline.} = message.name @@ -559,14 +541,14 @@ proc `name=`*(message: google_protobuf_UninterpretedOption, value: seq[google_pr proc clearidentifier_value*(message: google_protobuf_UninterpretedOption) = message.identifier_value = "" - excl(message.hasField, [3]) + clearFields(message, [3]) proc hasidentifier_value*(message: google_protobuf_UninterpretedOption): bool = - result = contains(message.hasField, 3) + result = hasField(message, 3) proc setidentifier_value*(message: google_protobuf_UninterpretedOption, value: string) = message.identifier_value = value - incl(message.hasField, 3) + setField(message, 3) proc identifier_value*(message: google_protobuf_UninterpretedOption): string {.inline.} = message.identifier_value @@ -576,14 +558,14 @@ proc `identifier_value=`*(message: google_protobuf_UninterpretedOption, value: s proc clearpositive_int_value*(message: google_protobuf_UninterpretedOption) = message.positive_int_value = 0 - excl(message.hasField, [4]) + clearFields(message, [4]) proc haspositive_int_value*(message: google_protobuf_UninterpretedOption): bool = - result = contains(message.hasField, 4) + result = hasField(message, 4) proc setpositive_int_value*(message: google_protobuf_UninterpretedOption, value: uint64) = message.positive_int_value = value - incl(message.hasField, 4) + setField(message, 4) proc positive_int_value*(message: google_protobuf_UninterpretedOption): uint64 {.inline.} = message.positive_int_value @@ -593,14 +575,14 @@ proc `positive_int_value=`*(message: google_protobuf_UninterpretedOption, value: proc clearnegative_int_value*(message: google_protobuf_UninterpretedOption) = message.negative_int_value = 0 - excl(message.hasField, [5]) + clearFields(message, [5]) proc hasnegative_int_value*(message: google_protobuf_UninterpretedOption): bool = - result = contains(message.hasField, 5) + result = hasField(message, 5) proc setnegative_int_value*(message: google_protobuf_UninterpretedOption, value: int64) = message.negative_int_value = value - incl(message.hasField, 5) + setField(message, 5) proc negative_int_value*(message: google_protobuf_UninterpretedOption): int64 {.inline.} = message.negative_int_value @@ -610,14 +592,14 @@ proc `negative_int_value=`*(message: google_protobuf_UninterpretedOption, value: proc cleardouble_value*(message: google_protobuf_UninterpretedOption) = message.double_value = 0 - excl(message.hasField, [6]) + clearFields(message, [6]) proc hasdouble_value*(message: google_protobuf_UninterpretedOption): bool = - result = contains(message.hasField, 6) + result = hasField(message, 6) proc setdouble_value*(message: google_protobuf_UninterpretedOption, value: float64) = message.double_value = value - incl(message.hasField, 6) + setField(message, 6) proc double_value*(message: google_protobuf_UninterpretedOption): float64 {.inline.} = message.double_value @@ -627,14 +609,14 @@ proc `double_value=`*(message: google_protobuf_UninterpretedOption, value: float proc clearstring_value*(message: google_protobuf_UninterpretedOption) = message.string_value = bytes("") - excl(message.hasField, [7]) + clearFields(message, [7]) proc hasstring_value*(message: google_protobuf_UninterpretedOption): bool = - result = contains(message.hasField, 7) + result = hasField(message, 7) proc setstring_value*(message: google_protobuf_UninterpretedOption, value: bytes) = message.string_value = value - incl(message.hasField, 7) + setField(message, 7) proc string_value*(message: google_protobuf_UninterpretedOption): bytes {.inline.} = message.string_value @@ -644,14 +626,14 @@ proc `string_value=`*(message: google_protobuf_UninterpretedOption, value: bytes proc clearaggregate_value*(message: google_protobuf_UninterpretedOption) = message.aggregate_value = "" - excl(message.hasField, [8]) + clearFields(message, [8]) proc hasaggregate_value*(message: google_protobuf_UninterpretedOption): bool = - result = contains(message.hasField, 8) + result = hasField(message, 8) proc setaggregate_value*(message: google_protobuf_UninterpretedOption, value: string) = message.aggregate_value = value - incl(message.hasField, 8) + setField(message, 8) proc aggregate_value*(message: google_protobuf_UninterpretedOption): string {.inline.} = message.aggregate_value @@ -681,6 +663,7 @@ proc sizeOfgoogle_protobuf_UninterpretedOption*(message: google_protobuf_Uninter if hasaggregate_value(message): result = result + sizeOfTag(8, WireType.LengthDelimited) result = result + sizeOfString(message.aggregate_value) + result = result + sizeOfUnknownFields(message) proc writegoogle_protobuf_UninterpretedOption*(stream: ProtobufStream, message: google_protobuf_UninterpretedOption) = for value in message.name: @@ -697,7 +680,7 @@ proc writegoogle_protobuf_UninterpretedOption*(stream: ProtobufStream, message: writeBytes(stream, message.string_value, 7) if hasaggregate_value(message): writeString(stream, message.aggregate_value, 8) - writeUnknownFields(stream, message.unknownFields) + writeUnknownFields(stream, message) proc readgoogle_protobuf_UninterpretedOption*(stream: ProtobufStream): google_protobuf_UninterpretedOption = result = newgoogle_protobuf_UninterpretedOption() @@ -730,7 +713,27 @@ proc readgoogle_protobuf_UninterpretedOption*(stream: ProtobufStream): google_pr of 8: expectWireType(wireType, WireType.LengthDelimited) setaggregate_value(result, readString(stream)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_UninterpretedOption): JsonNode = + result = newJObject() + if hasname(message): + let arr = newJArray() + for value in message.name: + add(arr, toJson(value)) + result["name"] = arr + if hasidentifier_value(message): + result["identifierValue"] = %message.identifier_value + if haspositive_int_value(message): + result["positiveIntValue"] = toJson(message.positive_int_value) + if hasnegative_int_value(message): + result["negativeIntValue"] = toJson(message.negative_int_value) + if hasdouble_value(message): + result["doubleValue"] = toJson(message.double_value) + if hasstring_value(message): + result["stringValue"] = %message.string_value + if hasaggregate_value(message): + result["aggregateValue"] = %message.aggregate_value proc serialize*(message: google_protobuf_UninterpretedOption): string = let @@ -748,21 +751,20 @@ proc newgoogle_protobuf_UninterpretedOption*(data: string): google_protobuf_Unin proc newgoogle_protobuf_EnumValueOptions*(): google_protobuf_EnumValueOptions = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.deprecated = false result.uninterpreted_option = @[] proc cleardeprecated*(message: google_protobuf_EnumValueOptions) = message.deprecated = false - excl(message.hasField, [1]) + clearFields(message, [1]) proc hasdeprecated*(message: google_protobuf_EnumValueOptions): bool = - result = contains(message.hasField, 1) + result = hasField(message, 1) proc setdeprecated*(message: google_protobuf_EnumValueOptions, value: bool) = message.deprecated = value - incl(message.hasField, 1) + setField(message, 1) proc deprecated*(message: google_protobuf_EnumValueOptions): bool {.inline.} = message.deprecated @@ -772,18 +774,18 @@ proc `deprecated=`*(message: google_protobuf_EnumValueOptions, value: bool) {.in proc clearuninterpreted_option*(message: google_protobuf_EnumValueOptions) = message.uninterpreted_option = @[] - excl(message.hasField, [999]) + clearFields(message, [999]) proc hasuninterpreted_option*(message: google_protobuf_EnumValueOptions): bool = - result = contains(message.hasField, 999) or (len(message.uninterpreted_option) > 0) + result = hasField(message, 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) + setField(message, 999) proc adduninterpreted_option*(message: google_protobuf_EnumValueOptions, value: google_protobuf_UninterpretedOption) = add(message.uninterpreted_option, value) - incl(message.hasField, 999) + setField(message, 999) proc uninterpreted_option*(message: google_protobuf_EnumValueOptions): seq[google_protobuf_UninterpretedOption] {.inline.} = message.uninterpreted_option @@ -798,13 +800,14 @@ proc sizeOfgoogle_protobuf_EnumValueOptions*(message: google_protobuf_EnumValueO for value in message.uninterpreted_option: result = result + sizeOfTag(999, WireType.LengthDelimited) result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_UninterpretedOption(value)) + result = result + sizeOfUnknownFields(message) 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) + writeUnknownFields(stream, message) proc readgoogle_protobuf_EnumValueOptions*(stream: ProtobufStream): google_protobuf_EnumValueOptions = result = newgoogle_protobuf_EnumValueOptions() @@ -822,7 +825,17 @@ proc readgoogle_protobuf_EnumValueOptions*(stream: ProtobufStream): google_proto expectWireType(wireType, WireType.LengthDelimited) let data = readLengthDelimited(stream) adduninterpreted_option(result, newgoogle_protobuf_UninterpretedOption(data)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_EnumValueOptions): JsonNode = + result = newJObject() + if hasdeprecated(message): + result["deprecated"] = %message.deprecated + if hasuninterpreted_option(message): + let arr = newJArray() + for value in message.uninterpreted_option: + add(arr, toJson(value)) + result["uninterpretedOption"] = arr proc serialize*(message: google_protobuf_EnumValueOptions): string = let @@ -840,22 +853,21 @@ proc newgoogle_protobuf_EnumValueOptions*(data: string): google_protobuf_EnumVal proc newgoogle_protobuf_EnumValueDescriptorProto*(): google_protobuf_EnumValueDescriptorProto = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.name = "" result.number = 0 result.options = nil proc clearname*(message: google_protobuf_EnumValueDescriptorProto) = message.name = "" - excl(message.hasField, [1]) + clearFields(message, [1]) proc hasname*(message: google_protobuf_EnumValueDescriptorProto): bool = - result = contains(message.hasField, 1) + result = hasField(message, 1) proc setname*(message: google_protobuf_EnumValueDescriptorProto, value: string) = message.name = value - incl(message.hasField, 1) + setField(message, 1) proc name*(message: google_protobuf_EnumValueDescriptorProto): string {.inline.} = message.name @@ -865,14 +877,14 @@ proc `name=`*(message: google_protobuf_EnumValueDescriptorProto, value: string) proc clearnumber*(message: google_protobuf_EnumValueDescriptorProto) = message.number = 0 - excl(message.hasField, [2]) + clearFields(message, [2]) proc hasnumber*(message: google_protobuf_EnumValueDescriptorProto): bool = - result = contains(message.hasField, 2) + result = hasField(message, 2) proc setnumber*(message: google_protobuf_EnumValueDescriptorProto, value: int32) = message.number = value - incl(message.hasField, 2) + setField(message, 2) proc number*(message: google_protobuf_EnumValueDescriptorProto): int32 {.inline.} = message.number @@ -882,14 +894,14 @@ proc `number=`*(message: google_protobuf_EnumValueDescriptorProto, value: int32) proc clearoptions*(message: google_protobuf_EnumValueDescriptorProto) = message.options = nil - excl(message.hasField, [3]) + clearFields(message, [3]) proc hasoptions*(message: google_protobuf_EnumValueDescriptorProto): bool = - result = contains(message.hasField, 3) + result = hasField(message, 3) proc setoptions*(message: google_protobuf_EnumValueDescriptorProto, value: google_protobuf_EnumValueOptions) = message.options = value - incl(message.hasField, 3) + setField(message, 3) proc options*(message: google_protobuf_EnumValueDescriptorProto): google_protobuf_EnumValueOptions {.inline.} = message.options @@ -907,6 +919,7 @@ proc sizeOfgoogle_protobuf_EnumValueDescriptorProto*(message: google_protobuf_En if hasoptions(message): result = result + sizeOfTag(3, WireType.LengthDelimited) result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_EnumValueOptions(message.options)) + result = result + sizeOfUnknownFields(message) proc writegoogle_protobuf_EnumValueDescriptorProto*(stream: ProtobufStream, message: google_protobuf_EnumValueDescriptorProto) = if hasname(message): @@ -915,7 +928,7 @@ proc writegoogle_protobuf_EnumValueDescriptorProto*(stream: ProtobufStream, mess writeInt32(stream, message.number, 2) if hasoptions(message): writeMessage(stream, message.options, 3) - writeUnknownFields(stream, message.unknownFields) + writeUnknownFields(stream, message) proc readgoogle_protobuf_EnumValueDescriptorProto*(stream: ProtobufStream): google_protobuf_EnumValueDescriptorProto = result = newgoogle_protobuf_EnumValueDescriptorProto() @@ -936,7 +949,16 @@ proc readgoogle_protobuf_EnumValueDescriptorProto*(stream: ProtobufStream): goog expectWireType(wireType, WireType.LengthDelimited) let data = readLengthDelimited(stream) setoptions(result, newgoogle_protobuf_EnumValueOptions(data)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_EnumValueDescriptorProto): JsonNode = + result = newJObject() + if hasname(message): + result["name"] = %message.name + if hasnumber(message): + result["number"] = %message.number + if hasoptions(message): + result["options"] = toJson(message.options) proc serialize*(message: google_protobuf_EnumValueDescriptorProto): string = let @@ -954,21 +976,20 @@ proc newgoogle_protobuf_EnumValueDescriptorProto*(data: string): google_protobuf proc newgoogle_protobuf_EnumDescriptorProto_EnumReservedRange*(): google_protobuf_EnumDescriptorProto_EnumReservedRange = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.start = 0 result.fend = 0 proc clearstart*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange) = message.start = 0 - excl(message.hasField, [1]) + clearFields(message, [1]) proc hasstart*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange): bool = - result = contains(message.hasField, 1) + result = hasField(message, 1) proc setstart*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange, value: int32) = message.start = value - incl(message.hasField, 1) + setField(message, 1) proc start*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange): int32 {.inline.} = message.start @@ -978,14 +999,14 @@ proc `start=`*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange, v proc clearfend*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange) = message.fend = 0 - excl(message.hasField, [2]) + clearFields(message, [2]) proc hasfend*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange): bool = - result = contains(message.hasField, 2) + result = hasField(message, 2) proc setfend*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange, value: int32) = message.fend = value - incl(message.hasField, 2) + setField(message, 2) proc fend*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange): int32 {.inline.} = message.fend @@ -1000,13 +1021,14 @@ proc sizeOfgoogle_protobuf_EnumDescriptorProto_EnumReservedRange*(message: googl if hasfend(message): result = result + sizeOfTag(2, WireType.Varint) result = result + sizeOfInt32(message.fend) + result = result + sizeOfUnknownFields(message) 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) + writeUnknownFields(stream, message) proc readgoogle_protobuf_EnumDescriptorProto_EnumReservedRange*(stream: ProtobufStream): google_protobuf_EnumDescriptorProto_EnumReservedRange = result = newgoogle_protobuf_EnumDescriptorProto_EnumReservedRange() @@ -1023,7 +1045,14 @@ proc readgoogle_protobuf_EnumDescriptorProto_EnumReservedRange*(stream: Protobuf of 2: expectWireType(wireType, WireType.Varint) setfend(result, readInt32(stream)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange): JsonNode = + result = newJObject() + if hasstart(message): + result["start"] = %message.start + if hasfend(message): + result["end"] = %message.fend proc serialize*(message: google_protobuf_EnumDescriptorProto_EnumReservedRange): string = let @@ -1041,22 +1070,21 @@ proc newgoogle_protobuf_EnumDescriptorProto_EnumReservedRange*(data: string): go proc newgoogle_protobuf_EnumOptions*(): google_protobuf_EnumOptions = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) 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]) + clearFields(message, [2]) proc hasallow_alias*(message: google_protobuf_EnumOptions): bool = - result = contains(message.hasField, 2) + result = hasField(message, 2) proc setallow_alias*(message: google_protobuf_EnumOptions, value: bool) = message.allow_alias = value - incl(message.hasField, 2) + setField(message, 2) proc allow_alias*(message: google_protobuf_EnumOptions): bool {.inline.} = message.allow_alias @@ -1066,14 +1094,14 @@ proc `allow_alias=`*(message: google_protobuf_EnumOptions, value: bool) {.inline proc cleardeprecated*(message: google_protobuf_EnumOptions) = message.deprecated = false - excl(message.hasField, [3]) + clearFields(message, [3]) proc hasdeprecated*(message: google_protobuf_EnumOptions): bool = - result = contains(message.hasField, 3) + result = hasField(message, 3) proc setdeprecated*(message: google_protobuf_EnumOptions, value: bool) = message.deprecated = value - incl(message.hasField, 3) + setField(message, 3) proc deprecated*(message: google_protobuf_EnumOptions): bool {.inline.} = message.deprecated @@ -1083,18 +1111,18 @@ proc `deprecated=`*(message: google_protobuf_EnumOptions, value: bool) {.inline. proc clearuninterpreted_option*(message: google_protobuf_EnumOptions) = message.uninterpreted_option = @[] - excl(message.hasField, [999]) + clearFields(message, [999]) proc hasuninterpreted_option*(message: google_protobuf_EnumOptions): bool = - result = contains(message.hasField, 999) or (len(message.uninterpreted_option) > 0) + result = hasField(message, 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) + setField(message, 999) proc adduninterpreted_option*(message: google_protobuf_EnumOptions, value: google_protobuf_UninterpretedOption) = add(message.uninterpreted_option, value) - incl(message.hasField, 999) + setField(message, 999) proc uninterpreted_option*(message: google_protobuf_EnumOptions): seq[google_protobuf_UninterpretedOption] {.inline.} = message.uninterpreted_option @@ -1112,6 +1140,7 @@ proc sizeOfgoogle_protobuf_EnumOptions*(message: google_protobuf_EnumOptions): u for value in message.uninterpreted_option: result = result + sizeOfTag(999, WireType.LengthDelimited) result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_UninterpretedOption(value)) + result = result + sizeOfUnknownFields(message) proc writegoogle_protobuf_EnumOptions*(stream: ProtobufStream, message: google_protobuf_EnumOptions) = if hasallow_alias(message): @@ -1120,7 +1149,7 @@ proc writegoogle_protobuf_EnumOptions*(stream: ProtobufStream, message: google_p writeBool(stream, message.deprecated, 3) for value in message.uninterpreted_option: writeMessage(stream, value, 999) - writeUnknownFields(stream, message.unknownFields) + writeUnknownFields(stream, message) proc readgoogle_protobuf_EnumOptions*(stream: ProtobufStream): google_protobuf_EnumOptions = result = newgoogle_protobuf_EnumOptions() @@ -1141,7 +1170,19 @@ proc readgoogle_protobuf_EnumOptions*(stream: ProtobufStream): google_protobuf_E expectWireType(wireType, WireType.LengthDelimited) let data = readLengthDelimited(stream) adduninterpreted_option(result, newgoogle_protobuf_UninterpretedOption(data)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_EnumOptions): JsonNode = + result = newJObject() + if hasallow_alias(message): + result["allowAlias"] = %message.allow_alias + if hasdeprecated(message): + result["deprecated"] = %message.deprecated + if hasuninterpreted_option(message): + let arr = newJArray() + for value in message.uninterpreted_option: + add(arr, toJson(value)) + result["uninterpretedOption"] = arr proc serialize*(message: google_protobuf_EnumOptions): string = let @@ -1159,8 +1200,7 @@ proc newgoogle_protobuf_EnumOptions*(data: string): google_protobuf_EnumOptions proc newgoogle_protobuf_EnumDescriptorProto*(): google_protobuf_EnumDescriptorProto = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.name = "" result.value = @[] result.options = nil @@ -1169,14 +1209,14 @@ proc newgoogle_protobuf_EnumDescriptorProto*(): google_protobuf_EnumDescriptorPr proc clearname*(message: google_protobuf_EnumDescriptorProto) = message.name = "" - excl(message.hasField, [1]) + clearFields(message, [1]) proc hasname*(message: google_protobuf_EnumDescriptorProto): bool = - result = contains(message.hasField, 1) + result = hasField(message, 1) proc setname*(message: google_protobuf_EnumDescriptorProto, value: string) = message.name = value - incl(message.hasField, 1) + setField(message, 1) proc name*(message: google_protobuf_EnumDescriptorProto): string {.inline.} = message.name @@ -1186,18 +1226,18 @@ proc `name=`*(message: google_protobuf_EnumDescriptorProto, value: string) {.inl proc clearvalue*(message: google_protobuf_EnumDescriptorProto) = message.value = @[] - excl(message.hasField, [2]) + clearFields(message, [2]) proc hasvalue*(message: google_protobuf_EnumDescriptorProto): bool = - result = contains(message.hasField, 2) or (len(message.value) > 0) + result = hasField(message, 2) or (len(message.value) > 0) proc setvalue*(message: google_protobuf_EnumDescriptorProto, value: seq[google_protobuf_EnumValueDescriptorProto]) = message.value = value - incl(message.hasField, 2) + setField(message, 2) proc addvalue*(message: google_protobuf_EnumDescriptorProto, value: google_protobuf_EnumValueDescriptorProto) = add(message.value, value) - incl(message.hasField, 2) + setField(message, 2) proc value*(message: google_protobuf_EnumDescriptorProto): seq[google_protobuf_EnumValueDescriptorProto] {.inline.} = message.value @@ -1207,14 +1247,14 @@ proc `value=`*(message: google_protobuf_EnumDescriptorProto, value: seq[google_p proc clearoptions*(message: google_protobuf_EnumDescriptorProto) = message.options = nil - excl(message.hasField, [3]) + clearFields(message, [3]) proc hasoptions*(message: google_protobuf_EnumDescriptorProto): bool = - result = contains(message.hasField, 3) + result = hasField(message, 3) proc setoptions*(message: google_protobuf_EnumDescriptorProto, value: google_protobuf_EnumOptions) = message.options = value - incl(message.hasField, 3) + setField(message, 3) proc options*(message: google_protobuf_EnumDescriptorProto): google_protobuf_EnumOptions {.inline.} = message.options @@ -1224,18 +1264,18 @@ proc `options=`*(message: google_protobuf_EnumDescriptorProto, value: google_pro proc clearreserved_range*(message: google_protobuf_EnumDescriptorProto) = message.reserved_range = @[] - excl(message.hasField, [4]) + clearFields(message, [4]) proc hasreserved_range*(message: google_protobuf_EnumDescriptorProto): bool = - result = contains(message.hasField, 4) or (len(message.reserved_range) > 0) + result = hasField(message, 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) + setField(message, 4) proc addreserved_range*(message: google_protobuf_EnumDescriptorProto, value: google_protobuf_EnumDescriptorProto_EnumReservedRange) = add(message.reserved_range, value) - incl(message.hasField, 4) + setField(message, 4) proc reserved_range*(message: google_protobuf_EnumDescriptorProto): seq[google_protobuf_EnumDescriptorProto_EnumReservedRange] {.inline.} = message.reserved_range @@ -1245,18 +1285,18 @@ proc `reserved_range=`*(message: google_protobuf_EnumDescriptorProto, value: seq proc clearreserved_name*(message: google_protobuf_EnumDescriptorProto) = message.reserved_name = @[] - excl(message.hasField, [5]) + clearFields(message, [5]) proc hasreserved_name*(message: google_protobuf_EnumDescriptorProto): bool = - result = contains(message.hasField, 5) or (len(message.reserved_name) > 0) + result = hasField(message, 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) + setField(message, 5) proc addreserved_name*(message: google_protobuf_EnumDescriptorProto, value: string) = add(message.reserved_name, value) - incl(message.hasField, 5) + setField(message, 5) proc reserved_name*(message: google_protobuf_EnumDescriptorProto): seq[string] {.inline.} = message.reserved_name @@ -1280,6 +1320,7 @@ proc sizeOfgoogle_protobuf_EnumDescriptorProto*(message: google_protobuf_EnumDes for value in message.reserved_name: result = result + sizeOfTag(5, WireType.LengthDelimited) result = result + sizeOfString(value) + result = result + sizeOfUnknownFields(message) proc writegoogle_protobuf_EnumDescriptorProto*(stream: ProtobufStream, message: google_protobuf_EnumDescriptorProto) = if hasname(message): @@ -1292,7 +1333,7 @@ proc writegoogle_protobuf_EnumDescriptorProto*(stream: ProtobufStream, message: writeMessage(stream, value, 4) for value in message.reserved_name: writeString(stream, value, 5) - writeUnknownFields(stream, message.unknownFields) + writeUnknownFields(stream, message) proc readgoogle_protobuf_EnumDescriptorProto*(stream: ProtobufStream): google_protobuf_EnumDescriptorProto = result = newgoogle_protobuf_EnumDescriptorProto() @@ -1321,7 +1362,29 @@ proc readgoogle_protobuf_EnumDescriptorProto*(stream: ProtobufStream): google_pr of 5: expectWireType(wireType, WireType.LengthDelimited) addreserved_name(result, readString(stream)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_EnumDescriptorProto): JsonNode = + result = newJObject() + if hasname(message): + result["name"] = %message.name + if hasvalue(message): + let arr = newJArray() + for value in message.value: + add(arr, toJson(value)) + result["value"] = arr + if hasoptions(message): + result["options"] = toJson(message.options) + if hasreserved_range(message): + let arr = newJArray() + for value in message.reserved_range: + add(arr, toJson(value)) + result["reservedRange"] = arr + if hasreserved_name(message): + let arr = newJArray() + for value in message.reserved_name: + add(arr, %value) + result["reservedName"] = arr proc serialize*(message: google_protobuf_EnumDescriptorProto): string = let @@ -1339,24 +1402,23 @@ proc newgoogle_protobuf_EnumDescriptorProto*(data: string): google_protobuf_Enum proc newgoogle_protobuf_ExtensionRangeOptions*(): google_protobuf_ExtensionRangeOptions = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.uninterpreted_option = @[] proc clearuninterpreted_option*(message: google_protobuf_ExtensionRangeOptions) = message.uninterpreted_option = @[] - excl(message.hasField, [999]) + clearFields(message, [999]) proc hasuninterpreted_option*(message: google_protobuf_ExtensionRangeOptions): bool = - result = contains(message.hasField, 999) or (len(message.uninterpreted_option) > 0) + result = hasField(message, 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) + setField(message, 999) proc adduninterpreted_option*(message: google_protobuf_ExtensionRangeOptions, value: google_protobuf_UninterpretedOption) = add(message.uninterpreted_option, value) - incl(message.hasField, 999) + setField(message, 999) proc uninterpreted_option*(message: google_protobuf_ExtensionRangeOptions): seq[google_protobuf_UninterpretedOption] {.inline.} = message.uninterpreted_option @@ -1368,11 +1430,12 @@ proc sizeOfgoogle_protobuf_ExtensionRangeOptions*(message: google_protobuf_Exten for value in message.uninterpreted_option: result = result + sizeOfTag(999, WireType.LengthDelimited) result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_UninterpretedOption(value)) + result = result + sizeOfUnknownFields(message) proc writegoogle_protobuf_ExtensionRangeOptions*(stream: ProtobufStream, message: google_protobuf_ExtensionRangeOptions) = for value in message.uninterpreted_option: writeMessage(stream, value, 999) - writeUnknownFields(stream, message.unknownFields) + writeUnknownFields(stream, message) proc readgoogle_protobuf_ExtensionRangeOptions*(stream: ProtobufStream): google_protobuf_ExtensionRangeOptions = result = newgoogle_protobuf_ExtensionRangeOptions() @@ -1387,7 +1450,15 @@ proc readgoogle_protobuf_ExtensionRangeOptions*(stream: ProtobufStream): google_ expectWireType(wireType, WireType.LengthDelimited) let data = readLengthDelimited(stream) adduninterpreted_option(result, newgoogle_protobuf_UninterpretedOption(data)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_ExtensionRangeOptions): JsonNode = + result = newJObject() + if hasuninterpreted_option(message): + let arr = newJArray() + for value in message.uninterpreted_option: + add(arr, toJson(value)) + result["uninterpretedOption"] = arr proc serialize*(message: google_protobuf_ExtensionRangeOptions): string = let @@ -1405,8 +1476,7 @@ proc newgoogle_protobuf_ExtensionRangeOptions*(data: string): google_protobuf_Ex proc newgoogle_protobuf_SourceCodeInfo_Location*(): google_protobuf_SourceCodeInfo_Location = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.path = @[] result.span = @[] result.leading_comments = "" @@ -1415,18 +1485,18 @@ proc newgoogle_protobuf_SourceCodeInfo_Location*(): google_protobuf_SourceCodeIn proc clearpath*(message: google_protobuf_SourceCodeInfo_Location) = message.path = @[] - excl(message.hasField, [1]) + clearFields(message, [1]) proc haspath*(message: google_protobuf_SourceCodeInfo_Location): bool = - result = contains(message.hasField, 1) or (len(message.path) > 0) + result = hasField(message, 1) or (len(message.path) > 0) proc setpath*(message: google_protobuf_SourceCodeInfo_Location, value: seq[int32]) = message.path = value - incl(message.hasField, 1) + setField(message, 1) proc addpath*(message: google_protobuf_SourceCodeInfo_Location, value: int32) = add(message.path, value) - incl(message.hasField, 1) + setField(message, 1) proc path*(message: google_protobuf_SourceCodeInfo_Location): seq[int32] {.inline.} = message.path @@ -1436,18 +1506,18 @@ proc `path=`*(message: google_protobuf_SourceCodeInfo_Location, value: seq[int32 proc clearspan*(message: google_protobuf_SourceCodeInfo_Location) = message.span = @[] - excl(message.hasField, [2]) + clearFields(message, [2]) proc hasspan*(message: google_protobuf_SourceCodeInfo_Location): bool = - result = contains(message.hasField, 2) or (len(message.span) > 0) + result = hasField(message, 2) or (len(message.span) > 0) proc setspan*(message: google_protobuf_SourceCodeInfo_Location, value: seq[int32]) = message.span = value - incl(message.hasField, 2) + setField(message, 2) proc addspan*(message: google_protobuf_SourceCodeInfo_Location, value: int32) = add(message.span, value) - incl(message.hasField, 2) + setField(message, 2) proc span*(message: google_protobuf_SourceCodeInfo_Location): seq[int32] {.inline.} = message.span @@ -1457,14 +1527,14 @@ proc `span=`*(message: google_protobuf_SourceCodeInfo_Location, value: seq[int32 proc clearleading_comments*(message: google_protobuf_SourceCodeInfo_Location) = message.leading_comments = "" - excl(message.hasField, [3]) + clearFields(message, [3]) proc hasleading_comments*(message: google_protobuf_SourceCodeInfo_Location): bool = - result = contains(message.hasField, 3) + result = hasField(message, 3) proc setleading_comments*(message: google_protobuf_SourceCodeInfo_Location, value: string) = message.leading_comments = value - incl(message.hasField, 3) + setField(message, 3) proc leading_comments*(message: google_protobuf_SourceCodeInfo_Location): string {.inline.} = message.leading_comments @@ -1474,14 +1544,14 @@ proc `leading_comments=`*(message: google_protobuf_SourceCodeInfo_Location, valu proc cleartrailing_comments*(message: google_protobuf_SourceCodeInfo_Location) = message.trailing_comments = "" - excl(message.hasField, [4]) + clearFields(message, [4]) proc hastrailing_comments*(message: google_protobuf_SourceCodeInfo_Location): bool = - result = contains(message.hasField, 4) + result = hasField(message, 4) proc settrailing_comments*(message: google_protobuf_SourceCodeInfo_Location, value: string) = message.trailing_comments = value - incl(message.hasField, 4) + setField(message, 4) proc trailing_comments*(message: google_protobuf_SourceCodeInfo_Location): string {.inline.} = message.trailing_comments @@ -1491,18 +1561,18 @@ proc `trailing_comments=`*(message: google_protobuf_SourceCodeInfo_Location, val proc clearleading_detached_comments*(message: google_protobuf_SourceCodeInfo_Location) = message.leading_detached_comments = @[] - excl(message.hasField, [6]) + clearFields(message, [6]) proc hasleading_detached_comments*(message: google_protobuf_SourceCodeInfo_Location): bool = - result = contains(message.hasField, 6) or (len(message.leading_detached_comments) > 0) + result = hasField(message, 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) + setField(message, 6) proc addleading_detached_comments*(message: google_protobuf_SourceCodeInfo_Location, value: string) = add(message.leading_detached_comments, value) - incl(message.hasField, 6) + setField(message, 6) proc leading_detached_comments*(message: google_protobuf_SourceCodeInfo_Location): seq[string] {.inline.} = message.leading_detached_comments @@ -1526,6 +1596,7 @@ proc sizeOfgoogle_protobuf_SourceCodeInfo_Location*(message: google_protobuf_Sou for value in message.leading_detached_comments: result = result + sizeOfTag(6, WireType.LengthDelimited) result = result + sizeOfString(value) + result = result + sizeOfUnknownFields(message) proc writegoogle_protobuf_SourceCodeInfo_Location*(stream: ProtobufStream, message: google_protobuf_SourceCodeInfo_Location) = if haspath(message): @@ -1544,7 +1615,7 @@ proc writegoogle_protobuf_SourceCodeInfo_Location*(stream: ProtobufStream, messa writeString(stream, message.trailing_comments, 4) for value in message.leading_detached_comments: writeString(stream, value, 6) - writeUnknownFields(stream, message.unknownFields) + writeUnknownFields(stream, message) proc readgoogle_protobuf_SourceCodeInfo_Location*(stream: ProtobufStream): google_protobuf_SourceCodeInfo_Location = result = newgoogle_protobuf_SourceCodeInfo_Location() @@ -1592,7 +1663,29 @@ proc readgoogle_protobuf_SourceCodeInfo_Location*(stream: ProtobufStream): googl of 6: expectWireType(wireType, WireType.LengthDelimited) addleading_detached_comments(result, readString(stream)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_SourceCodeInfo_Location): JsonNode = + result = newJObject() + if haspath(message): + let arr = newJArray() + for value in message.path: + add(arr, %value) + result["path"] = arr + if hasspan(message): + let arr = newJArray() + for value in message.span: + add(arr, %value) + result["span"] = arr + if hasleading_comments(message): + result["leadingComments"] = %message.leading_comments + if hastrailing_comments(message): + result["trailingComments"] = %message.trailing_comments + if hasleading_detached_comments(message): + let arr = newJArray() + for value in message.leading_detached_comments: + add(arr, %value) + result["leadingDetachedComments"] = arr proc serialize*(message: google_protobuf_SourceCodeInfo_Location): string = let @@ -1610,24 +1703,23 @@ proc newgoogle_protobuf_SourceCodeInfo_Location*(data: string): google_protobuf_ proc newgoogle_protobuf_SourceCodeInfo*(): google_protobuf_SourceCodeInfo = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.location = @[] proc clearlocation*(message: google_protobuf_SourceCodeInfo) = message.location = @[] - excl(message.hasField, [1]) + clearFields(message, [1]) proc haslocation*(message: google_protobuf_SourceCodeInfo): bool = - result = contains(message.hasField, 1) or (len(message.location) > 0) + result = hasField(message, 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) + setField(message, 1) proc addlocation*(message: google_protobuf_SourceCodeInfo, value: google_protobuf_SourceCodeInfo_Location) = add(message.location, value) - incl(message.hasField, 1) + setField(message, 1) proc location*(message: google_protobuf_SourceCodeInfo): seq[google_protobuf_SourceCodeInfo_Location] {.inline.} = message.location @@ -1639,11 +1731,12 @@ proc sizeOfgoogle_protobuf_SourceCodeInfo*(message: google_protobuf_SourceCodeIn for value in message.location: result = result + sizeOfTag(1, WireType.LengthDelimited) result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_SourceCodeInfo_Location(value)) + result = result + sizeOfUnknownFields(message) proc writegoogle_protobuf_SourceCodeInfo*(stream: ProtobufStream, message: google_protobuf_SourceCodeInfo) = for value in message.location: writeMessage(stream, value, 1) - writeUnknownFields(stream, message.unknownFields) + writeUnknownFields(stream, message) proc readgoogle_protobuf_SourceCodeInfo*(stream: ProtobufStream): google_protobuf_SourceCodeInfo = result = newgoogle_protobuf_SourceCodeInfo() @@ -1658,7 +1751,15 @@ proc readgoogle_protobuf_SourceCodeInfo*(stream: ProtobufStream): google_protobu expectWireType(wireType, WireType.LengthDelimited) let data = readLengthDelimited(stream) addlocation(result, newgoogle_protobuf_SourceCodeInfo_Location(data)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_SourceCodeInfo): JsonNode = + result = newJObject() + if haslocation(message): + let arr = newJArray() + for value in message.location: + add(arr, toJson(value)) + result["location"] = arr proc serialize*(message: google_protobuf_SourceCodeInfo): string = let @@ -1676,8 +1777,7 @@ proc newgoogle_protobuf_SourceCodeInfo*(data: string): google_protobuf_SourceCod proc newgoogle_protobuf_FieldOptions*(): google_protobuf_FieldOptions = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.ctype = google_protobuf_FieldOptions_CType.STRING result.packed = false result.jstype = google_protobuf_FieldOptions_JSType.JS_NORMAL @@ -1688,14 +1788,14 @@ proc newgoogle_protobuf_FieldOptions*(): google_protobuf_FieldOptions = proc clearctype*(message: google_protobuf_FieldOptions) = message.ctype = google_protobuf_FieldOptions_CType.STRING - excl(message.hasField, [1]) + clearFields(message, [1]) proc hasctype*(message: google_protobuf_FieldOptions): bool = - result = contains(message.hasField, 1) + result = hasField(message, 1) proc setctype*(message: google_protobuf_FieldOptions, value: google_protobuf_FieldOptions_CType) = message.ctype = value - incl(message.hasField, 1) + setField(message, 1) proc ctype*(message: google_protobuf_FieldOptions): google_protobuf_FieldOptions_CType {.inline.} = message.ctype @@ -1705,14 +1805,14 @@ proc `ctype=`*(message: google_protobuf_FieldOptions, value: google_protobuf_Fie proc clearpacked*(message: google_protobuf_FieldOptions) = message.packed = false - excl(message.hasField, [2]) + clearFields(message, [2]) proc haspacked*(message: google_protobuf_FieldOptions): bool = - result = contains(message.hasField, 2) + result = hasField(message, 2) proc setpacked*(message: google_protobuf_FieldOptions, value: bool) = message.packed = value - incl(message.hasField, 2) + setField(message, 2) proc packed*(message: google_protobuf_FieldOptions): bool {.inline.} = message.packed @@ -1722,14 +1822,14 @@ proc `packed=`*(message: google_protobuf_FieldOptions, value: bool) {.inline.} = proc clearjstype*(message: google_protobuf_FieldOptions) = message.jstype = google_protobuf_FieldOptions_JSType.JS_NORMAL - excl(message.hasField, [6]) + clearFields(message, [6]) proc hasjstype*(message: google_protobuf_FieldOptions): bool = - result = contains(message.hasField, 6) + result = hasField(message, 6) proc setjstype*(message: google_protobuf_FieldOptions, value: google_protobuf_FieldOptions_JSType) = message.jstype = value - incl(message.hasField, 6) + setField(message, 6) proc jstype*(message: google_protobuf_FieldOptions): google_protobuf_FieldOptions_JSType {.inline.} = message.jstype @@ -1739,14 +1839,14 @@ proc `jstype=`*(message: google_protobuf_FieldOptions, value: google_protobuf_Fi proc clearlazy*(message: google_protobuf_FieldOptions) = message.lazy = false - excl(message.hasField, [5]) + clearFields(message, [5]) proc haslazy*(message: google_protobuf_FieldOptions): bool = - result = contains(message.hasField, 5) + result = hasField(message, 5) proc setlazy*(message: google_protobuf_FieldOptions, value: bool) = message.lazy = value - incl(message.hasField, 5) + setField(message, 5) proc lazy*(message: google_protobuf_FieldOptions): bool {.inline.} = message.lazy @@ -1756,14 +1856,14 @@ proc `lazy=`*(message: google_protobuf_FieldOptions, value: bool) {.inline.} = proc cleardeprecated*(message: google_protobuf_FieldOptions) = message.deprecated = false - excl(message.hasField, [3]) + clearFields(message, [3]) proc hasdeprecated*(message: google_protobuf_FieldOptions): bool = - result = contains(message.hasField, 3) + result = hasField(message, 3) proc setdeprecated*(message: google_protobuf_FieldOptions, value: bool) = message.deprecated = value - incl(message.hasField, 3) + setField(message, 3) proc deprecated*(message: google_protobuf_FieldOptions): bool {.inline.} = message.deprecated @@ -1773,14 +1873,14 @@ proc `deprecated=`*(message: google_protobuf_FieldOptions, value: bool) {.inline proc clearweak*(message: google_protobuf_FieldOptions) = message.weak = false - excl(message.hasField, [10]) + clearFields(message, [10]) proc hasweak*(message: google_protobuf_FieldOptions): bool = - result = contains(message.hasField, 10) + result = hasField(message, 10) proc setweak*(message: google_protobuf_FieldOptions, value: bool) = message.weak = value - incl(message.hasField, 10) + setField(message, 10) proc weak*(message: google_protobuf_FieldOptions): bool {.inline.} = message.weak @@ -1790,18 +1890,18 @@ proc `weak=`*(message: google_protobuf_FieldOptions, value: bool) {.inline.} = proc clearuninterpreted_option*(message: google_protobuf_FieldOptions) = message.uninterpreted_option = @[] - excl(message.hasField, [999]) + clearFields(message, [999]) proc hasuninterpreted_option*(message: google_protobuf_FieldOptions): bool = - result = contains(message.hasField, 999) or (len(message.uninterpreted_option) > 0) + result = hasField(message, 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) + setField(message, 999) proc adduninterpreted_option*(message: google_protobuf_FieldOptions, value: google_protobuf_UninterpretedOption) = add(message.uninterpreted_option, value) - incl(message.hasField, 999) + setField(message, 999) proc uninterpreted_option*(message: google_protobuf_FieldOptions): seq[google_protobuf_UninterpretedOption] {.inline.} = message.uninterpreted_option @@ -1831,6 +1931,7 @@ proc sizeOfgoogle_protobuf_FieldOptions*(message: google_protobuf_FieldOptions): for value in message.uninterpreted_option: result = result + sizeOfTag(999, WireType.LengthDelimited) result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_UninterpretedOption(value)) + result = result + sizeOfUnknownFields(message) proc writegoogle_protobuf_FieldOptions*(stream: ProtobufStream, message: google_protobuf_FieldOptions) = if hasctype(message): @@ -1847,7 +1948,7 @@ proc writegoogle_protobuf_FieldOptions*(stream: ProtobufStream, message: google_ writeBool(stream, message.weak, 10) for value in message.uninterpreted_option: writeMessage(stream, value, 999) - writeUnknownFields(stream, message.unknownFields) + writeUnknownFields(stream, message) proc readgoogle_protobuf_FieldOptions*(stream: ProtobufStream): google_protobuf_FieldOptions = result = newgoogle_protobuf_FieldOptions() @@ -1880,7 +1981,27 @@ proc readgoogle_protobuf_FieldOptions*(stream: ProtobufStream): google_protobuf_ expectWireType(wireType, WireType.LengthDelimited) let data = readLengthDelimited(stream) adduninterpreted_option(result, newgoogle_protobuf_UninterpretedOption(data)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_FieldOptions): JsonNode = + result = newJObject() + if hasctype(message): + result["ctype"] = %($message.ctype) + if haspacked(message): + result["packed"] = %message.packed + if hasjstype(message): + result["jstype"] = %($message.jstype) + if haslazy(message): + result["lazy"] = %message.lazy + if hasdeprecated(message): + result["deprecated"] = %message.deprecated + if hasweak(message): + result["weak"] = %message.weak + if hasuninterpreted_option(message): + let arr = newJArray() + for value in message.uninterpreted_option: + add(arr, toJson(value)) + result["uninterpretedOption"] = arr proc serialize*(message: google_protobuf_FieldOptions): string = let @@ -1898,8 +2019,7 @@ proc newgoogle_protobuf_FieldOptions*(data: string): google_protobuf_FieldOption proc newgoogle_protobuf_FieldDescriptorProto*(): google_protobuf_FieldDescriptorProto = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.name = "" result.number = 0 result.label = google_protobuf_FieldDescriptorProto_Label.LABEL_OPTIONAL @@ -1913,14 +2033,14 @@ proc newgoogle_protobuf_FieldDescriptorProto*(): google_protobuf_FieldDescriptor proc clearname*(message: google_protobuf_FieldDescriptorProto) = message.name = "" - excl(message.hasField, [1]) + clearFields(message, [1]) proc hasname*(message: google_protobuf_FieldDescriptorProto): bool = - result = contains(message.hasField, 1) + result = hasField(message, 1) proc setname*(message: google_protobuf_FieldDescriptorProto, value: string) = message.name = value - incl(message.hasField, 1) + setField(message, 1) proc name*(message: google_protobuf_FieldDescriptorProto): string {.inline.} = message.name @@ -1930,14 +2050,14 @@ proc `name=`*(message: google_protobuf_FieldDescriptorProto, value: string) {.in proc clearnumber*(message: google_protobuf_FieldDescriptorProto) = message.number = 0 - excl(message.hasField, [3]) + clearFields(message, [3]) proc hasnumber*(message: google_protobuf_FieldDescriptorProto): bool = - result = contains(message.hasField, 3) + result = hasField(message, 3) proc setnumber*(message: google_protobuf_FieldDescriptorProto, value: int32) = message.number = value - incl(message.hasField, 3) + setField(message, 3) proc number*(message: google_protobuf_FieldDescriptorProto): int32 {.inline.} = message.number @@ -1947,14 +2067,14 @@ proc `number=`*(message: google_protobuf_FieldDescriptorProto, value: int32) {.i proc clearlabel*(message: google_protobuf_FieldDescriptorProto) = message.label = google_protobuf_FieldDescriptorProto_Label.LABEL_OPTIONAL - excl(message.hasField, [4]) + clearFields(message, [4]) proc haslabel*(message: google_protobuf_FieldDescriptorProto): bool = - result = contains(message.hasField, 4) + result = hasField(message, 4) proc setlabel*(message: google_protobuf_FieldDescriptorProto, value: google_protobuf_FieldDescriptorProto_Label) = message.label = value - incl(message.hasField, 4) + setField(message, 4) proc label*(message: google_protobuf_FieldDescriptorProto): google_protobuf_FieldDescriptorProto_Label {.inline.} = message.label @@ -1964,14 +2084,14 @@ proc `label=`*(message: google_protobuf_FieldDescriptorProto, value: google_prot proc clearftype*(message: google_protobuf_FieldDescriptorProto) = message.ftype = google_protobuf_FieldDescriptorProto_Type.TYPE_DOUBLE - excl(message.hasField, [5]) + clearFields(message, [5]) proc hasftype*(message: google_protobuf_FieldDescriptorProto): bool = - result = contains(message.hasField, 5) + result = hasField(message, 5) proc setftype*(message: google_protobuf_FieldDescriptorProto, value: google_protobuf_FieldDescriptorProto_Type) = message.ftype = value - incl(message.hasField, 5) + setField(message, 5) proc ftype*(message: google_protobuf_FieldDescriptorProto): google_protobuf_FieldDescriptorProto_Type {.inline.} = message.ftype @@ -1981,14 +2101,14 @@ proc `ftype=`*(message: google_protobuf_FieldDescriptorProto, value: google_prot proc cleartype_name*(message: google_protobuf_FieldDescriptorProto) = message.type_name = "" - excl(message.hasField, [6]) + clearFields(message, [6]) proc hastype_name*(message: google_protobuf_FieldDescriptorProto): bool = - result = contains(message.hasField, 6) + result = hasField(message, 6) proc settype_name*(message: google_protobuf_FieldDescriptorProto, value: string) = message.type_name = value - incl(message.hasField, 6) + setField(message, 6) proc type_name*(message: google_protobuf_FieldDescriptorProto): string {.inline.} = message.type_name @@ -1998,14 +2118,14 @@ proc `type_name=`*(message: google_protobuf_FieldDescriptorProto, value: string) proc clearextendee*(message: google_protobuf_FieldDescriptorProto) = message.extendee = "" - excl(message.hasField, [2]) + clearFields(message, [2]) proc hasextendee*(message: google_protobuf_FieldDescriptorProto): bool = - result = contains(message.hasField, 2) + result = hasField(message, 2) proc setextendee*(message: google_protobuf_FieldDescriptorProto, value: string) = message.extendee = value - incl(message.hasField, 2) + setField(message, 2) proc extendee*(message: google_protobuf_FieldDescriptorProto): string {.inline.} = message.extendee @@ -2015,14 +2135,14 @@ proc `extendee=`*(message: google_protobuf_FieldDescriptorProto, value: string) proc cleardefault_value*(message: google_protobuf_FieldDescriptorProto) = message.default_value = "" - excl(message.hasField, [7]) + clearFields(message, [7]) proc hasdefault_value*(message: google_protobuf_FieldDescriptorProto): bool = - result = contains(message.hasField, 7) + result = hasField(message, 7) proc setdefault_value*(message: google_protobuf_FieldDescriptorProto, value: string) = message.default_value = value - incl(message.hasField, 7) + setField(message, 7) proc default_value*(message: google_protobuf_FieldDescriptorProto): string {.inline.} = message.default_value @@ -2032,14 +2152,14 @@ proc `default_value=`*(message: google_protobuf_FieldDescriptorProto, value: str proc clearoneof_index*(message: google_protobuf_FieldDescriptorProto) = message.oneof_index = 0 - excl(message.hasField, [9]) + clearFields(message, [9]) proc hasoneof_index*(message: google_protobuf_FieldDescriptorProto): bool = - result = contains(message.hasField, 9) + result = hasField(message, 9) proc setoneof_index*(message: google_protobuf_FieldDescriptorProto, value: int32) = message.oneof_index = value - incl(message.hasField, 9) + setField(message, 9) proc oneof_index*(message: google_protobuf_FieldDescriptorProto): int32 {.inline.} = message.oneof_index @@ -2049,14 +2169,14 @@ proc `oneof_index=`*(message: google_protobuf_FieldDescriptorProto, value: int32 proc clearjson_name*(message: google_protobuf_FieldDescriptorProto) = message.json_name = "" - excl(message.hasField, [10]) + clearFields(message, [10]) proc hasjson_name*(message: google_protobuf_FieldDescriptorProto): bool = - result = contains(message.hasField, 10) + result = hasField(message, 10) proc setjson_name*(message: google_protobuf_FieldDescriptorProto, value: string) = message.json_name = value - incl(message.hasField, 10) + setField(message, 10) proc json_name*(message: google_protobuf_FieldDescriptorProto): string {.inline.} = message.json_name @@ -2066,14 +2186,14 @@ proc `json_name=`*(message: google_protobuf_FieldDescriptorProto, value: string) proc clearoptions*(message: google_protobuf_FieldDescriptorProto) = message.options = nil - excl(message.hasField, [8]) + clearFields(message, [8]) proc hasoptions*(message: google_protobuf_FieldDescriptorProto): bool = - result = contains(message.hasField, 8) + result = hasField(message, 8) proc setoptions*(message: google_protobuf_FieldDescriptorProto, value: google_protobuf_FieldOptions) = message.options = value - incl(message.hasField, 8) + setField(message, 8) proc options*(message: google_protobuf_FieldDescriptorProto): google_protobuf_FieldOptions {.inline.} = message.options @@ -2112,6 +2232,7 @@ proc sizeOfgoogle_protobuf_FieldDescriptorProto*(message: google_protobuf_FieldD if hasoptions(message): result = result + sizeOfTag(8, WireType.LengthDelimited) result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_FieldOptions(message.options)) + result = result + sizeOfUnknownFields(message) proc writegoogle_protobuf_FieldDescriptorProto*(stream: ProtobufStream, message: google_protobuf_FieldDescriptorProto) = if hasname(message): @@ -2134,7 +2255,7 @@ proc writegoogle_protobuf_FieldDescriptorProto*(stream: ProtobufStream, message: writeString(stream, message.json_name, 10) if hasoptions(message): writeMessage(stream, message.options, 8) - writeUnknownFields(stream, message.unknownFields) + writeUnknownFields(stream, message) proc readgoogle_protobuf_FieldDescriptorProto*(stream: ProtobufStream): google_protobuf_FieldDescriptorProto = result = newgoogle_protobuf_FieldDescriptorProto() @@ -2176,7 +2297,30 @@ proc readgoogle_protobuf_FieldDescriptorProto*(stream: ProtobufStream): google_p expectWireType(wireType, WireType.LengthDelimited) let data = readLengthDelimited(stream) setoptions(result, newgoogle_protobuf_FieldOptions(data)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_FieldDescriptorProto): JsonNode = + result = newJObject() + if hasname(message): + result["name"] = %message.name + if hasnumber(message): + result["number"] = %message.number + if haslabel(message): + result["label"] = %($message.label) + if hasftype(message): + result["type"] = %($message.ftype) + if hastype_name(message): + result["typeName"] = %message.type_name + if hasextendee(message): + result["extendee"] = %message.extendee + if hasdefault_value(message): + result["defaultValue"] = %message.default_value + if hasoneof_index(message): + result["oneofIndex"] = %message.oneof_index + if hasjson_name(message): + result["jsonName"] = %message.json_name + if hasoptions(message): + result["options"] = toJson(message.options) proc serialize*(message: google_protobuf_FieldDescriptorProto): string = let @@ -2194,22 +2338,21 @@ proc newgoogle_protobuf_FieldDescriptorProto*(data: string): google_protobuf_Fie proc newgoogle_protobuf_DescriptorProto_ExtensionRange*(): google_protobuf_DescriptorProto_ExtensionRange = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.start = 0 result.fend = 0 result.options = nil proc clearstart*(message: google_protobuf_DescriptorProto_ExtensionRange) = message.start = 0 - excl(message.hasField, [1]) + clearFields(message, [1]) proc hasstart*(message: google_protobuf_DescriptorProto_ExtensionRange): bool = - result = contains(message.hasField, 1) + result = hasField(message, 1) proc setstart*(message: google_protobuf_DescriptorProto_ExtensionRange, value: int32) = message.start = value - incl(message.hasField, 1) + setField(message, 1) proc start*(message: google_protobuf_DescriptorProto_ExtensionRange): int32 {.inline.} = message.start @@ -2219,14 +2362,14 @@ proc `start=`*(message: google_protobuf_DescriptorProto_ExtensionRange, value: i proc clearfend*(message: google_protobuf_DescriptorProto_ExtensionRange) = message.fend = 0 - excl(message.hasField, [2]) + clearFields(message, [2]) proc hasfend*(message: google_protobuf_DescriptorProto_ExtensionRange): bool = - result = contains(message.hasField, 2) + result = hasField(message, 2) proc setfend*(message: google_protobuf_DescriptorProto_ExtensionRange, value: int32) = message.fend = value - incl(message.hasField, 2) + setField(message, 2) proc fend*(message: google_protobuf_DescriptorProto_ExtensionRange): int32 {.inline.} = message.fend @@ -2236,14 +2379,14 @@ proc `fend=`*(message: google_protobuf_DescriptorProto_ExtensionRange, value: in proc clearoptions*(message: google_protobuf_DescriptorProto_ExtensionRange) = message.options = nil - excl(message.hasField, [3]) + clearFields(message, [3]) proc hasoptions*(message: google_protobuf_DescriptorProto_ExtensionRange): bool = - result = contains(message.hasField, 3) + result = hasField(message, 3) proc setoptions*(message: google_protobuf_DescriptorProto_ExtensionRange, value: google_protobuf_ExtensionRangeOptions) = message.options = value - incl(message.hasField, 3) + setField(message, 3) proc options*(message: google_protobuf_DescriptorProto_ExtensionRange): google_protobuf_ExtensionRangeOptions {.inline.} = message.options @@ -2261,6 +2404,7 @@ proc sizeOfgoogle_protobuf_DescriptorProto_ExtensionRange*(message: google_proto if hasoptions(message): result = result + sizeOfTag(3, WireType.LengthDelimited) result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_ExtensionRangeOptions(message.options)) + result = result + sizeOfUnknownFields(message) proc writegoogle_protobuf_DescriptorProto_ExtensionRange*(stream: ProtobufStream, message: google_protobuf_DescriptorProto_ExtensionRange) = if hasstart(message): @@ -2269,7 +2413,7 @@ proc writegoogle_protobuf_DescriptorProto_ExtensionRange*(stream: ProtobufStream writeInt32(stream, message.fend, 2) if hasoptions(message): writeMessage(stream, message.options, 3) - writeUnknownFields(stream, message.unknownFields) + writeUnknownFields(stream, message) proc readgoogle_protobuf_DescriptorProto_ExtensionRange*(stream: ProtobufStream): google_protobuf_DescriptorProto_ExtensionRange = result = newgoogle_protobuf_DescriptorProto_ExtensionRange() @@ -2290,7 +2434,16 @@ proc readgoogle_protobuf_DescriptorProto_ExtensionRange*(stream: ProtobufStream) expectWireType(wireType, WireType.LengthDelimited) let data = readLengthDelimited(stream) setoptions(result, newgoogle_protobuf_ExtensionRangeOptions(data)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_DescriptorProto_ExtensionRange): JsonNode = + result = newJObject() + if hasstart(message): + result["start"] = %message.start + if hasfend(message): + result["end"] = %message.fend + if hasoptions(message): + result["options"] = toJson(message.options) proc serialize*(message: google_protobuf_DescriptorProto_ExtensionRange): string = let @@ -2308,8 +2461,7 @@ proc newgoogle_protobuf_DescriptorProto_ExtensionRange*(data: string): google_pr proc newgoogle_protobuf_MessageOptions*(): google_protobuf_MessageOptions = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.message_set_wire_format = false result.no_standard_descriptor_accessor = false result.deprecated = false @@ -2318,14 +2470,14 @@ proc newgoogle_protobuf_MessageOptions*(): google_protobuf_MessageOptions = proc clearmessage_set_wire_format*(message: google_protobuf_MessageOptions) = message.message_set_wire_format = false - excl(message.hasField, [1]) + clearFields(message, [1]) proc hasmessage_set_wire_format*(message: google_protobuf_MessageOptions): bool = - result = contains(message.hasField, 1) + result = hasField(message, 1) proc setmessage_set_wire_format*(message: google_protobuf_MessageOptions, value: bool) = message.message_set_wire_format = value - incl(message.hasField, 1) + setField(message, 1) proc message_set_wire_format*(message: google_protobuf_MessageOptions): bool {.inline.} = message.message_set_wire_format @@ -2335,14 +2487,14 @@ proc `message_set_wire_format=`*(message: google_protobuf_MessageOptions, value: proc clearno_standard_descriptor_accessor*(message: google_protobuf_MessageOptions) = message.no_standard_descriptor_accessor = false - excl(message.hasField, [2]) + clearFields(message, [2]) proc hasno_standard_descriptor_accessor*(message: google_protobuf_MessageOptions): bool = - result = contains(message.hasField, 2) + result = hasField(message, 2) proc setno_standard_descriptor_accessor*(message: google_protobuf_MessageOptions, value: bool) = message.no_standard_descriptor_accessor = value - incl(message.hasField, 2) + setField(message, 2) proc no_standard_descriptor_accessor*(message: google_protobuf_MessageOptions): bool {.inline.} = message.no_standard_descriptor_accessor @@ -2352,14 +2504,14 @@ proc `no_standard_descriptor_accessor=`*(message: google_protobuf_MessageOptions proc cleardeprecated*(message: google_protobuf_MessageOptions) = message.deprecated = false - excl(message.hasField, [3]) + clearFields(message, [3]) proc hasdeprecated*(message: google_protobuf_MessageOptions): bool = - result = contains(message.hasField, 3) + result = hasField(message, 3) proc setdeprecated*(message: google_protobuf_MessageOptions, value: bool) = message.deprecated = value - incl(message.hasField, 3) + setField(message, 3) proc deprecated*(message: google_protobuf_MessageOptions): bool {.inline.} = message.deprecated @@ -2369,14 +2521,14 @@ proc `deprecated=`*(message: google_protobuf_MessageOptions, value: bool) {.inli proc clearmap_entry*(message: google_protobuf_MessageOptions) = message.map_entry = false - excl(message.hasField, [7]) + clearFields(message, [7]) proc hasmap_entry*(message: google_protobuf_MessageOptions): bool = - result = contains(message.hasField, 7) + result = hasField(message, 7) proc setmap_entry*(message: google_protobuf_MessageOptions, value: bool) = message.map_entry = value - incl(message.hasField, 7) + setField(message, 7) proc map_entry*(message: google_protobuf_MessageOptions): bool {.inline.} = message.map_entry @@ -2386,18 +2538,18 @@ proc `map_entry=`*(message: google_protobuf_MessageOptions, value: bool) {.inlin proc clearuninterpreted_option*(message: google_protobuf_MessageOptions) = message.uninterpreted_option = @[] - excl(message.hasField, [999]) + clearFields(message, [999]) proc hasuninterpreted_option*(message: google_protobuf_MessageOptions): bool = - result = contains(message.hasField, 999) or (len(message.uninterpreted_option) > 0) + result = hasField(message, 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) + setField(message, 999) proc adduninterpreted_option*(message: google_protobuf_MessageOptions, value: google_protobuf_UninterpretedOption) = add(message.uninterpreted_option, value) - incl(message.hasField, 999) + setField(message, 999) proc uninterpreted_option*(message: google_protobuf_MessageOptions): seq[google_protobuf_UninterpretedOption] {.inline.} = message.uninterpreted_option @@ -2421,6 +2573,7 @@ proc sizeOfgoogle_protobuf_MessageOptions*(message: google_protobuf_MessageOptio for value in message.uninterpreted_option: result = result + sizeOfTag(999, WireType.LengthDelimited) result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_UninterpretedOption(value)) + result = result + sizeOfUnknownFields(message) proc writegoogle_protobuf_MessageOptions*(stream: ProtobufStream, message: google_protobuf_MessageOptions) = if hasmessage_set_wire_format(message): @@ -2433,7 +2586,7 @@ proc writegoogle_protobuf_MessageOptions*(stream: ProtobufStream, message: googl writeBool(stream, message.map_entry, 7) for value in message.uninterpreted_option: writeMessage(stream, value, 999) - writeUnknownFields(stream, message.unknownFields) + writeUnknownFields(stream, message) proc readgoogle_protobuf_MessageOptions*(stream: ProtobufStream): google_protobuf_MessageOptions = result = newgoogle_protobuf_MessageOptions() @@ -2460,7 +2613,23 @@ proc readgoogle_protobuf_MessageOptions*(stream: ProtobufStream): google_protobu expectWireType(wireType, WireType.LengthDelimited) let data = readLengthDelimited(stream) adduninterpreted_option(result, newgoogle_protobuf_UninterpretedOption(data)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_MessageOptions): JsonNode = + result = newJObject() + if hasmessage_set_wire_format(message): + result["messageSetWireFormat"] = %message.message_set_wire_format + if hasno_standard_descriptor_accessor(message): + result["noStandardDescriptorAccessor"] = %message.no_standard_descriptor_accessor + if hasdeprecated(message): + result["deprecated"] = %message.deprecated + if hasmap_entry(message): + result["mapEntry"] = %message.map_entry + if hasuninterpreted_option(message): + let arr = newJArray() + for value in message.uninterpreted_option: + add(arr, toJson(value)) + result["uninterpretedOption"] = arr proc serialize*(message: google_protobuf_MessageOptions): string = let @@ -2478,24 +2647,23 @@ proc newgoogle_protobuf_MessageOptions*(data: string): google_protobuf_MessageOp proc newgoogle_protobuf_OneofOptions*(): google_protobuf_OneofOptions = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.uninterpreted_option = @[] proc clearuninterpreted_option*(message: google_protobuf_OneofOptions) = message.uninterpreted_option = @[] - excl(message.hasField, [999]) + clearFields(message, [999]) proc hasuninterpreted_option*(message: google_protobuf_OneofOptions): bool = - result = contains(message.hasField, 999) or (len(message.uninterpreted_option) > 0) + result = hasField(message, 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) + setField(message, 999) proc adduninterpreted_option*(message: google_protobuf_OneofOptions, value: google_protobuf_UninterpretedOption) = add(message.uninterpreted_option, value) - incl(message.hasField, 999) + setField(message, 999) proc uninterpreted_option*(message: google_protobuf_OneofOptions): seq[google_protobuf_UninterpretedOption] {.inline.} = message.uninterpreted_option @@ -2507,11 +2675,12 @@ proc sizeOfgoogle_protobuf_OneofOptions*(message: google_protobuf_OneofOptions): for value in message.uninterpreted_option: result = result + sizeOfTag(999, WireType.LengthDelimited) result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_UninterpretedOption(value)) + result = result + sizeOfUnknownFields(message) proc writegoogle_protobuf_OneofOptions*(stream: ProtobufStream, message: google_protobuf_OneofOptions) = for value in message.uninterpreted_option: writeMessage(stream, value, 999) - writeUnknownFields(stream, message.unknownFields) + writeUnknownFields(stream, message) proc readgoogle_protobuf_OneofOptions*(stream: ProtobufStream): google_protobuf_OneofOptions = result = newgoogle_protobuf_OneofOptions() @@ -2526,7 +2695,15 @@ proc readgoogle_protobuf_OneofOptions*(stream: ProtobufStream): google_protobuf_ expectWireType(wireType, WireType.LengthDelimited) let data = readLengthDelimited(stream) adduninterpreted_option(result, newgoogle_protobuf_UninterpretedOption(data)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_OneofOptions): JsonNode = + result = newJObject() + if hasuninterpreted_option(message): + let arr = newJArray() + for value in message.uninterpreted_option: + add(arr, toJson(value)) + result["uninterpretedOption"] = arr proc serialize*(message: google_protobuf_OneofOptions): string = let @@ -2544,21 +2721,20 @@ proc newgoogle_protobuf_OneofOptions*(data: string): google_protobuf_OneofOption proc newgoogle_protobuf_OneofDescriptorProto*(): google_protobuf_OneofDescriptorProto = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.name = "" result.options = nil proc clearname*(message: google_protobuf_OneofDescriptorProto) = message.name = "" - excl(message.hasField, [1]) + clearFields(message, [1]) proc hasname*(message: google_protobuf_OneofDescriptorProto): bool = - result = contains(message.hasField, 1) + result = hasField(message, 1) proc setname*(message: google_protobuf_OneofDescriptorProto, value: string) = message.name = value - incl(message.hasField, 1) + setField(message, 1) proc name*(message: google_protobuf_OneofDescriptorProto): string {.inline.} = message.name @@ -2568,14 +2744,14 @@ proc `name=`*(message: google_protobuf_OneofDescriptorProto, value: string) {.in proc clearoptions*(message: google_protobuf_OneofDescriptorProto) = message.options = nil - excl(message.hasField, [2]) + clearFields(message, [2]) proc hasoptions*(message: google_protobuf_OneofDescriptorProto): bool = - result = contains(message.hasField, 2) + result = hasField(message, 2) proc setoptions*(message: google_protobuf_OneofDescriptorProto, value: google_protobuf_OneofOptions) = message.options = value - incl(message.hasField, 2) + setField(message, 2) proc options*(message: google_protobuf_OneofDescriptorProto): google_protobuf_OneofOptions {.inline.} = message.options @@ -2590,13 +2766,14 @@ proc sizeOfgoogle_protobuf_OneofDescriptorProto*(message: google_protobuf_OneofD if hasoptions(message): result = result + sizeOfTag(2, WireType.LengthDelimited) result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_OneofOptions(message.options)) + result = result + sizeOfUnknownFields(message) 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) + writeUnknownFields(stream, message) proc readgoogle_protobuf_OneofDescriptorProto*(stream: ProtobufStream): google_protobuf_OneofDescriptorProto = result = newgoogle_protobuf_OneofDescriptorProto() @@ -2614,7 +2791,14 @@ proc readgoogle_protobuf_OneofDescriptorProto*(stream: ProtobufStream): google_p expectWireType(wireType, WireType.LengthDelimited) let data = readLengthDelimited(stream) setoptions(result, newgoogle_protobuf_OneofOptions(data)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_OneofDescriptorProto): JsonNode = + result = newJObject() + if hasname(message): + result["name"] = %message.name + if hasoptions(message): + result["options"] = toJson(message.options) proc serialize*(message: google_protobuf_OneofDescriptorProto): string = let @@ -2632,21 +2816,20 @@ proc newgoogle_protobuf_OneofDescriptorProto*(data: string): google_protobuf_One proc newgoogle_protobuf_DescriptorProto_ReservedRange*(): google_protobuf_DescriptorProto_ReservedRange = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.start = 0 result.fend = 0 proc clearstart*(message: google_protobuf_DescriptorProto_ReservedRange) = message.start = 0 - excl(message.hasField, [1]) + clearFields(message, [1]) proc hasstart*(message: google_protobuf_DescriptorProto_ReservedRange): bool = - result = contains(message.hasField, 1) + result = hasField(message, 1) proc setstart*(message: google_protobuf_DescriptorProto_ReservedRange, value: int32) = message.start = value - incl(message.hasField, 1) + setField(message, 1) proc start*(message: google_protobuf_DescriptorProto_ReservedRange): int32 {.inline.} = message.start @@ -2656,14 +2839,14 @@ proc `start=`*(message: google_protobuf_DescriptorProto_ReservedRange, value: in proc clearfend*(message: google_protobuf_DescriptorProto_ReservedRange) = message.fend = 0 - excl(message.hasField, [2]) + clearFields(message, [2]) proc hasfend*(message: google_protobuf_DescriptorProto_ReservedRange): bool = - result = contains(message.hasField, 2) + result = hasField(message, 2) proc setfend*(message: google_protobuf_DescriptorProto_ReservedRange, value: int32) = message.fend = value - incl(message.hasField, 2) + setField(message, 2) proc fend*(message: google_protobuf_DescriptorProto_ReservedRange): int32 {.inline.} = message.fend @@ -2678,13 +2861,14 @@ proc sizeOfgoogle_protobuf_DescriptorProto_ReservedRange*(message: google_protob if hasfend(message): result = result + sizeOfTag(2, WireType.Varint) result = result + sizeOfInt32(message.fend) + result = result + sizeOfUnknownFields(message) 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) + writeUnknownFields(stream, message) proc readgoogle_protobuf_DescriptorProto_ReservedRange*(stream: ProtobufStream): google_protobuf_DescriptorProto_ReservedRange = result = newgoogle_protobuf_DescriptorProto_ReservedRange() @@ -2701,7 +2885,14 @@ proc readgoogle_protobuf_DescriptorProto_ReservedRange*(stream: ProtobufStream): of 2: expectWireType(wireType, WireType.Varint) setfend(result, readInt32(stream)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_DescriptorProto_ReservedRange): JsonNode = + result = newJObject() + if hasstart(message): + result["start"] = %message.start + if hasfend(message): + result["end"] = %message.fend proc serialize*(message: google_protobuf_DescriptorProto_ReservedRange): string = let @@ -2719,8 +2910,7 @@ proc newgoogle_protobuf_DescriptorProto_ReservedRange*(data: string): google_pro proc newgoogle_protobuf_DescriptorProto*(): google_protobuf_DescriptorProto = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.name = "" result.field = @[] result.extension = @[] @@ -2734,14 +2924,14 @@ proc newgoogle_protobuf_DescriptorProto*(): google_protobuf_DescriptorProto = proc clearname*(message: google_protobuf_DescriptorProto) = message.name = "" - excl(message.hasField, [1]) + clearFields(message, [1]) proc hasname*(message: google_protobuf_DescriptorProto): bool = - result = contains(message.hasField, 1) + result = hasField(message, 1) proc setname*(message: google_protobuf_DescriptorProto, value: string) = message.name = value - incl(message.hasField, 1) + setField(message, 1) proc name*(message: google_protobuf_DescriptorProto): string {.inline.} = message.name @@ -2751,18 +2941,18 @@ proc `name=`*(message: google_protobuf_DescriptorProto, value: string) {.inline. proc clearfield*(message: google_protobuf_DescriptorProto) = message.field = @[] - excl(message.hasField, [2]) + clearFields(message, [2]) proc hasfield*(message: google_protobuf_DescriptorProto): bool = - result = contains(message.hasField, 2) or (len(message.field) > 0) + result = hasField(message, 2) or (len(message.field) > 0) proc setfield*(message: google_protobuf_DescriptorProto, value: seq[google_protobuf_FieldDescriptorProto]) = message.field = value - incl(message.hasField, 2) + setField(message, 2) proc addfield*(message: google_protobuf_DescriptorProto, value: google_protobuf_FieldDescriptorProto) = add(message.field, value) - incl(message.hasField, 2) + setField(message, 2) proc field*(message: google_protobuf_DescriptorProto): seq[google_protobuf_FieldDescriptorProto] {.inline.} = message.field @@ -2772,18 +2962,18 @@ proc `field=`*(message: google_protobuf_DescriptorProto, value: seq[google_proto proc clearextension*(message: google_protobuf_DescriptorProto) = message.extension = @[] - excl(message.hasField, [6]) + clearFields(message, [6]) proc hasextension*(message: google_protobuf_DescriptorProto): bool = - result = contains(message.hasField, 6) or (len(message.extension) > 0) + result = hasField(message, 6) or (len(message.extension) > 0) proc setextension*(message: google_protobuf_DescriptorProto, value: seq[google_protobuf_FieldDescriptorProto]) = message.extension = value - incl(message.hasField, 6) + setField(message, 6) proc addextension*(message: google_protobuf_DescriptorProto, value: google_protobuf_FieldDescriptorProto) = add(message.extension, value) - incl(message.hasField, 6) + setField(message, 6) proc extension*(message: google_protobuf_DescriptorProto): seq[google_protobuf_FieldDescriptorProto] {.inline.} = message.extension @@ -2793,18 +2983,18 @@ proc `extension=`*(message: google_protobuf_DescriptorProto, value: seq[google_p proc clearnested_type*(message: google_protobuf_DescriptorProto) = message.nested_type = @[] - excl(message.hasField, [3]) + clearFields(message, [3]) proc hasnested_type*(message: google_protobuf_DescriptorProto): bool = - result = contains(message.hasField, 3) or (len(message.nested_type) > 0) + result = hasField(message, 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) + setField(message, 3) proc addnested_type*(message: google_protobuf_DescriptorProto, value: google_protobuf_DescriptorProto) = add(message.nested_type, value) - incl(message.hasField, 3) + setField(message, 3) proc nested_type*(message: google_protobuf_DescriptorProto): seq[google_protobuf_DescriptorProto] {.inline.} = message.nested_type @@ -2814,18 +3004,18 @@ proc `nested_type=`*(message: google_protobuf_DescriptorProto, value: seq[google proc clearenum_type*(message: google_protobuf_DescriptorProto) = message.enum_type = @[] - excl(message.hasField, [4]) + clearFields(message, [4]) proc hasenum_type*(message: google_protobuf_DescriptorProto): bool = - result = contains(message.hasField, 4) or (len(message.enum_type) > 0) + result = hasField(message, 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) + setField(message, 4) proc addenum_type*(message: google_protobuf_DescriptorProto, value: google_protobuf_EnumDescriptorProto) = add(message.enum_type, value) - incl(message.hasField, 4) + setField(message, 4) proc enum_type*(message: google_protobuf_DescriptorProto): seq[google_protobuf_EnumDescriptorProto] {.inline.} = message.enum_type @@ -2835,18 +3025,18 @@ proc `enum_type=`*(message: google_protobuf_DescriptorProto, value: seq[google_p proc clearextension_range*(message: google_protobuf_DescriptorProto) = message.extension_range = @[] - excl(message.hasField, [5]) + clearFields(message, [5]) proc hasextension_range*(message: google_protobuf_DescriptorProto): bool = - result = contains(message.hasField, 5) or (len(message.extension_range) > 0) + result = hasField(message, 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) + setField(message, 5) proc addextension_range*(message: google_protobuf_DescriptorProto, value: google_protobuf_DescriptorProto_ExtensionRange) = add(message.extension_range, value) - incl(message.hasField, 5) + setField(message, 5) proc extension_range*(message: google_protobuf_DescriptorProto): seq[google_protobuf_DescriptorProto_ExtensionRange] {.inline.} = message.extension_range @@ -2856,18 +3046,18 @@ proc `extension_range=`*(message: google_protobuf_DescriptorProto, value: seq[go proc clearoneof_decl*(message: google_protobuf_DescriptorProto) = message.oneof_decl = @[] - excl(message.hasField, [8]) + clearFields(message, [8]) proc hasoneof_decl*(message: google_protobuf_DescriptorProto): bool = - result = contains(message.hasField, 8) or (len(message.oneof_decl) > 0) + result = hasField(message, 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) + setField(message, 8) proc addoneof_decl*(message: google_protobuf_DescriptorProto, value: google_protobuf_OneofDescriptorProto) = add(message.oneof_decl, value) - incl(message.hasField, 8) + setField(message, 8) proc oneof_decl*(message: google_protobuf_DescriptorProto): seq[google_protobuf_OneofDescriptorProto] {.inline.} = message.oneof_decl @@ -2877,14 +3067,14 @@ proc `oneof_decl=`*(message: google_protobuf_DescriptorProto, value: seq[google_ proc clearoptions*(message: google_protobuf_DescriptorProto) = message.options = nil - excl(message.hasField, [7]) + clearFields(message, [7]) proc hasoptions*(message: google_protobuf_DescriptorProto): bool = - result = contains(message.hasField, 7) + result = hasField(message, 7) proc setoptions*(message: google_protobuf_DescriptorProto, value: google_protobuf_MessageOptions) = message.options = value - incl(message.hasField, 7) + setField(message, 7) proc options*(message: google_protobuf_DescriptorProto): google_protobuf_MessageOptions {.inline.} = message.options @@ -2894,18 +3084,18 @@ proc `options=`*(message: google_protobuf_DescriptorProto, value: google_protobu proc clearreserved_range*(message: google_protobuf_DescriptorProto) = message.reserved_range = @[] - excl(message.hasField, [9]) + clearFields(message, [9]) proc hasreserved_range*(message: google_protobuf_DescriptorProto): bool = - result = contains(message.hasField, 9) or (len(message.reserved_range) > 0) + result = hasField(message, 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) + setField(message, 9) proc addreserved_range*(message: google_protobuf_DescriptorProto, value: google_protobuf_DescriptorProto_ReservedRange) = add(message.reserved_range, value) - incl(message.hasField, 9) + setField(message, 9) proc reserved_range*(message: google_protobuf_DescriptorProto): seq[google_protobuf_DescriptorProto_ReservedRange] {.inline.} = message.reserved_range @@ -2915,18 +3105,18 @@ proc `reserved_range=`*(message: google_protobuf_DescriptorProto, value: seq[goo proc clearreserved_name*(message: google_protobuf_DescriptorProto) = message.reserved_name = @[] - excl(message.hasField, [10]) + clearFields(message, [10]) proc hasreserved_name*(message: google_protobuf_DescriptorProto): bool = - result = contains(message.hasField, 10) or (len(message.reserved_name) > 0) + result = hasField(message, 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) + setField(message, 10) proc addreserved_name*(message: google_protobuf_DescriptorProto, value: string) = add(message.reserved_name, value) - incl(message.hasField, 10) + setField(message, 10) proc reserved_name*(message: google_protobuf_DescriptorProto): seq[string] {.inline.} = message.reserved_name @@ -2965,6 +3155,7 @@ proc sizeOfgoogle_protobuf_DescriptorProto*(message: google_protobuf_DescriptorP for value in message.reserved_name: result = result + sizeOfTag(10, WireType.LengthDelimited) result = result + sizeOfString(value) + result = result + sizeOfUnknownFields(message) proc writegoogle_protobuf_DescriptorProto*(stream: ProtobufStream, message: google_protobuf_DescriptorProto) = if hasname(message): @@ -2987,7 +3178,7 @@ proc writegoogle_protobuf_DescriptorProto*(stream: ProtobufStream, message: goog writeMessage(stream, value, 9) for value in message.reserved_name: writeString(stream, value, 10) - writeUnknownFields(stream, message.unknownFields) + writeUnknownFields(stream, message) proc readgoogle_protobuf_DescriptorProto*(stream: ProtobufStream): google_protobuf_DescriptorProto = result = newgoogle_protobuf_DescriptorProto() @@ -3036,7 +3227,54 @@ proc readgoogle_protobuf_DescriptorProto*(stream: ProtobufStream): google_protob of 10: expectWireType(wireType, WireType.LengthDelimited) addreserved_name(result, readString(stream)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_DescriptorProto): JsonNode = + result = newJObject() + if hasname(message): + result["name"] = %message.name + if hasfield(message): + let arr = newJArray() + for value in message.field: + add(arr, toJson(value)) + result["field"] = arr + if hasextension(message): + let arr = newJArray() + for value in message.extension: + add(arr, toJson(value)) + result["extension"] = arr + if hasnested_type(message): + let arr = newJArray() + for value in message.nested_type: + add(arr, toJson(value)) + result["nestedType"] = arr + if hasenum_type(message): + let arr = newJArray() + for value in message.enum_type: + add(arr, toJson(value)) + result["enumType"] = arr + if hasextension_range(message): + let arr = newJArray() + for value in message.extension_range: + add(arr, toJson(value)) + result["extensionRange"] = arr + if hasoneof_decl(message): + let arr = newJArray() + for value in message.oneof_decl: + add(arr, toJson(value)) + result["oneofDecl"] = arr + if hasoptions(message): + result["options"] = toJson(message.options) + if hasreserved_range(message): + let arr = newJArray() + for value in message.reserved_range: + add(arr, toJson(value)) + result["reservedRange"] = arr + if hasreserved_name(message): + let arr = newJArray() + for value in message.reserved_name: + add(arr, %value) + result["reservedName"] = arr proc serialize*(message: google_protobuf_DescriptorProto): string = let @@ -3054,8 +3292,7 @@ proc newgoogle_protobuf_DescriptorProto*(data: string): google_protobuf_Descript proc newgoogle_protobuf_FileOptions*(): google_protobuf_FileOptions = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.java_package = "" result.java_outer_classname = "" result.java_multiple_files = false @@ -3078,14 +3315,14 @@ proc newgoogle_protobuf_FileOptions*(): google_protobuf_FileOptions = proc clearjava_package*(message: google_protobuf_FileOptions) = message.java_package = "" - excl(message.hasField, [1]) + clearFields(message, [1]) proc hasjava_package*(message: google_protobuf_FileOptions): bool = - result = contains(message.hasField, 1) + result = hasField(message, 1) proc setjava_package*(message: google_protobuf_FileOptions, value: string) = message.java_package = value - incl(message.hasField, 1) + setField(message, 1) proc java_package*(message: google_protobuf_FileOptions): string {.inline.} = message.java_package @@ -3095,14 +3332,14 @@ proc `java_package=`*(message: google_protobuf_FileOptions, value: string) {.inl proc clearjava_outer_classname*(message: google_protobuf_FileOptions) = message.java_outer_classname = "" - excl(message.hasField, [8]) + clearFields(message, [8]) proc hasjava_outer_classname*(message: google_protobuf_FileOptions): bool = - result = contains(message.hasField, 8) + result = hasField(message, 8) proc setjava_outer_classname*(message: google_protobuf_FileOptions, value: string) = message.java_outer_classname = value - incl(message.hasField, 8) + setField(message, 8) proc java_outer_classname*(message: google_protobuf_FileOptions): string {.inline.} = message.java_outer_classname @@ -3112,14 +3349,14 @@ proc `java_outer_classname=`*(message: google_protobuf_FileOptions, value: strin proc clearjava_multiple_files*(message: google_protobuf_FileOptions) = message.java_multiple_files = false - excl(message.hasField, [10]) + clearFields(message, [10]) proc hasjava_multiple_files*(message: google_protobuf_FileOptions): bool = - result = contains(message.hasField, 10) + result = hasField(message, 10) proc setjava_multiple_files*(message: google_protobuf_FileOptions, value: bool) = message.java_multiple_files = value - incl(message.hasField, 10) + setField(message, 10) proc java_multiple_files*(message: google_protobuf_FileOptions): bool {.inline.} = message.java_multiple_files @@ -3129,14 +3366,14 @@ proc `java_multiple_files=`*(message: google_protobuf_FileOptions, value: bool) proc clearjava_generate_equals_and_hash*(message: google_protobuf_FileOptions) = message.java_generate_equals_and_hash = false - excl(message.hasField, [20]) + clearFields(message, [20]) proc hasjava_generate_equals_and_hash*(message: google_protobuf_FileOptions): bool = - result = contains(message.hasField, 20) + result = hasField(message, 20) proc setjava_generate_equals_and_hash*(message: google_protobuf_FileOptions, value: bool) = message.java_generate_equals_and_hash = value - incl(message.hasField, 20) + setField(message, 20) proc java_generate_equals_and_hash*(message: google_protobuf_FileOptions): bool {.inline.} = message.java_generate_equals_and_hash @@ -3146,14 +3383,14 @@ proc `java_generate_equals_and_hash=`*(message: google_protobuf_FileOptions, val proc clearjava_string_check_utf8*(message: google_protobuf_FileOptions) = message.java_string_check_utf8 = false - excl(message.hasField, [27]) + clearFields(message, [27]) proc hasjava_string_check_utf8*(message: google_protobuf_FileOptions): bool = - result = contains(message.hasField, 27) + result = hasField(message, 27) proc setjava_string_check_utf8*(message: google_protobuf_FileOptions, value: bool) = message.java_string_check_utf8 = value - incl(message.hasField, 27) + setField(message, 27) proc java_string_check_utf8*(message: google_protobuf_FileOptions): bool {.inline.} = message.java_string_check_utf8 @@ -3163,14 +3400,14 @@ proc `java_string_check_utf8=`*(message: google_protobuf_FileOptions, value: boo proc clearoptimize_for*(message: google_protobuf_FileOptions) = message.optimize_for = google_protobuf_FileOptions_OptimizeMode.SPEED - excl(message.hasField, [9]) + clearFields(message, [9]) proc hasoptimize_for*(message: google_protobuf_FileOptions): bool = - result = contains(message.hasField, 9) + result = hasField(message, 9) proc setoptimize_for*(message: google_protobuf_FileOptions, value: google_protobuf_FileOptions_OptimizeMode) = message.optimize_for = value - incl(message.hasField, 9) + setField(message, 9) proc optimize_for*(message: google_protobuf_FileOptions): google_protobuf_FileOptions_OptimizeMode {.inline.} = message.optimize_for @@ -3180,14 +3417,14 @@ proc `optimize_for=`*(message: google_protobuf_FileOptions, value: google_protob proc cleargo_package*(message: google_protobuf_FileOptions) = message.go_package = "" - excl(message.hasField, [11]) + clearFields(message, [11]) proc hasgo_package*(message: google_protobuf_FileOptions): bool = - result = contains(message.hasField, 11) + result = hasField(message, 11) proc setgo_package*(message: google_protobuf_FileOptions, value: string) = message.go_package = value - incl(message.hasField, 11) + setField(message, 11) proc go_package*(message: google_protobuf_FileOptions): string {.inline.} = message.go_package @@ -3197,14 +3434,14 @@ proc `go_package=`*(message: google_protobuf_FileOptions, value: string) {.inlin proc clearcc_generic_services*(message: google_protobuf_FileOptions) = message.cc_generic_services = false - excl(message.hasField, [16]) + clearFields(message, [16]) proc hascc_generic_services*(message: google_protobuf_FileOptions): bool = - result = contains(message.hasField, 16) + result = hasField(message, 16) proc setcc_generic_services*(message: google_protobuf_FileOptions, value: bool) = message.cc_generic_services = value - incl(message.hasField, 16) + setField(message, 16) proc cc_generic_services*(message: google_protobuf_FileOptions): bool {.inline.} = message.cc_generic_services @@ -3214,14 +3451,14 @@ proc `cc_generic_services=`*(message: google_protobuf_FileOptions, value: bool) proc clearjava_generic_services*(message: google_protobuf_FileOptions) = message.java_generic_services = false - excl(message.hasField, [17]) + clearFields(message, [17]) proc hasjava_generic_services*(message: google_protobuf_FileOptions): bool = - result = contains(message.hasField, 17) + result = hasField(message, 17) proc setjava_generic_services*(message: google_protobuf_FileOptions, value: bool) = message.java_generic_services = value - incl(message.hasField, 17) + setField(message, 17) proc java_generic_services*(message: google_protobuf_FileOptions): bool {.inline.} = message.java_generic_services @@ -3231,14 +3468,14 @@ proc `java_generic_services=`*(message: google_protobuf_FileOptions, value: bool proc clearpy_generic_services*(message: google_protobuf_FileOptions) = message.py_generic_services = false - excl(message.hasField, [18]) + clearFields(message, [18]) proc haspy_generic_services*(message: google_protobuf_FileOptions): bool = - result = contains(message.hasField, 18) + result = hasField(message, 18) proc setpy_generic_services*(message: google_protobuf_FileOptions, value: bool) = message.py_generic_services = value - incl(message.hasField, 18) + setField(message, 18) proc py_generic_services*(message: google_protobuf_FileOptions): bool {.inline.} = message.py_generic_services @@ -3248,14 +3485,14 @@ proc `py_generic_services=`*(message: google_protobuf_FileOptions, value: bool) proc clearphp_generic_services*(message: google_protobuf_FileOptions) = message.php_generic_services = false - excl(message.hasField, [42]) + clearFields(message, [42]) proc hasphp_generic_services*(message: google_protobuf_FileOptions): bool = - result = contains(message.hasField, 42) + result = hasField(message, 42) proc setphp_generic_services*(message: google_protobuf_FileOptions, value: bool) = message.php_generic_services = value - incl(message.hasField, 42) + setField(message, 42) proc php_generic_services*(message: google_protobuf_FileOptions): bool {.inline.} = message.php_generic_services @@ -3265,14 +3502,14 @@ proc `php_generic_services=`*(message: google_protobuf_FileOptions, value: bool) proc cleardeprecated*(message: google_protobuf_FileOptions) = message.deprecated = false - excl(message.hasField, [23]) + clearFields(message, [23]) proc hasdeprecated*(message: google_protobuf_FileOptions): bool = - result = contains(message.hasField, 23) + result = hasField(message, 23) proc setdeprecated*(message: google_protobuf_FileOptions, value: bool) = message.deprecated = value - incl(message.hasField, 23) + setField(message, 23) proc deprecated*(message: google_protobuf_FileOptions): bool {.inline.} = message.deprecated @@ -3282,14 +3519,14 @@ proc `deprecated=`*(message: google_protobuf_FileOptions, value: bool) {.inline. proc clearcc_enable_arenas*(message: google_protobuf_FileOptions) = message.cc_enable_arenas = false - excl(message.hasField, [31]) + clearFields(message, [31]) proc hascc_enable_arenas*(message: google_protobuf_FileOptions): bool = - result = contains(message.hasField, 31) + result = hasField(message, 31) proc setcc_enable_arenas*(message: google_protobuf_FileOptions, value: bool) = message.cc_enable_arenas = value - incl(message.hasField, 31) + setField(message, 31) proc cc_enable_arenas*(message: google_protobuf_FileOptions): bool {.inline.} = message.cc_enable_arenas @@ -3299,14 +3536,14 @@ proc `cc_enable_arenas=`*(message: google_protobuf_FileOptions, value: bool) {.i proc clearobjc_class_prefix*(message: google_protobuf_FileOptions) = message.objc_class_prefix = "" - excl(message.hasField, [36]) + clearFields(message, [36]) proc hasobjc_class_prefix*(message: google_protobuf_FileOptions): bool = - result = contains(message.hasField, 36) + result = hasField(message, 36) proc setobjc_class_prefix*(message: google_protobuf_FileOptions, value: string) = message.objc_class_prefix = value - incl(message.hasField, 36) + setField(message, 36) proc objc_class_prefix*(message: google_protobuf_FileOptions): string {.inline.} = message.objc_class_prefix @@ -3316,14 +3553,14 @@ proc `objc_class_prefix=`*(message: google_protobuf_FileOptions, value: string) proc clearcsharp_namespace*(message: google_protobuf_FileOptions) = message.csharp_namespace = "" - excl(message.hasField, [37]) + clearFields(message, [37]) proc hascsharp_namespace*(message: google_protobuf_FileOptions): bool = - result = contains(message.hasField, 37) + result = hasField(message, 37) proc setcsharp_namespace*(message: google_protobuf_FileOptions, value: string) = message.csharp_namespace = value - incl(message.hasField, 37) + setField(message, 37) proc csharp_namespace*(message: google_protobuf_FileOptions): string {.inline.} = message.csharp_namespace @@ -3333,14 +3570,14 @@ proc `csharp_namespace=`*(message: google_protobuf_FileOptions, value: string) { proc clearswift_prefix*(message: google_protobuf_FileOptions) = message.swift_prefix = "" - excl(message.hasField, [39]) + clearFields(message, [39]) proc hasswift_prefix*(message: google_protobuf_FileOptions): bool = - result = contains(message.hasField, 39) + result = hasField(message, 39) proc setswift_prefix*(message: google_protobuf_FileOptions, value: string) = message.swift_prefix = value - incl(message.hasField, 39) + setField(message, 39) proc swift_prefix*(message: google_protobuf_FileOptions): string {.inline.} = message.swift_prefix @@ -3350,14 +3587,14 @@ proc `swift_prefix=`*(message: google_protobuf_FileOptions, value: string) {.inl proc clearphp_class_prefix*(message: google_protobuf_FileOptions) = message.php_class_prefix = "" - excl(message.hasField, [40]) + clearFields(message, [40]) proc hasphp_class_prefix*(message: google_protobuf_FileOptions): bool = - result = contains(message.hasField, 40) + result = hasField(message, 40) proc setphp_class_prefix*(message: google_protobuf_FileOptions, value: string) = message.php_class_prefix = value - incl(message.hasField, 40) + setField(message, 40) proc php_class_prefix*(message: google_protobuf_FileOptions): string {.inline.} = message.php_class_prefix @@ -3367,14 +3604,14 @@ proc `php_class_prefix=`*(message: google_protobuf_FileOptions, value: string) { proc clearphp_namespace*(message: google_protobuf_FileOptions) = message.php_namespace = "" - excl(message.hasField, [41]) + clearFields(message, [41]) proc hasphp_namespace*(message: google_protobuf_FileOptions): bool = - result = contains(message.hasField, 41) + result = hasField(message, 41) proc setphp_namespace*(message: google_protobuf_FileOptions, value: string) = message.php_namespace = value - incl(message.hasField, 41) + setField(message, 41) proc php_namespace*(message: google_protobuf_FileOptions): string {.inline.} = message.php_namespace @@ -3384,18 +3621,18 @@ proc `php_namespace=`*(message: google_protobuf_FileOptions, value: string) {.in proc clearuninterpreted_option*(message: google_protobuf_FileOptions) = message.uninterpreted_option = @[] - excl(message.hasField, [999]) + clearFields(message, [999]) proc hasuninterpreted_option*(message: google_protobuf_FileOptions): bool = - result = contains(message.hasField, 999) or (len(message.uninterpreted_option) > 0) + result = hasField(message, 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) + setField(message, 999) proc adduninterpreted_option*(message: google_protobuf_FileOptions, value: google_protobuf_UninterpretedOption) = add(message.uninterpreted_option, value) - incl(message.hasField, 999) + setField(message, 999) proc uninterpreted_option*(message: google_protobuf_FileOptions): seq[google_protobuf_UninterpretedOption] {.inline.} = message.uninterpreted_option @@ -3461,6 +3698,7 @@ proc sizeOfgoogle_protobuf_FileOptions*(message: google_protobuf_FileOptions): u for value in message.uninterpreted_option: result = result + sizeOfTag(999, WireType.LengthDelimited) result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_UninterpretedOption(value)) + result = result + sizeOfUnknownFields(message) proc writegoogle_protobuf_FileOptions*(stream: ProtobufStream, message: google_protobuf_FileOptions) = if hasjava_package(message): @@ -3501,7 +3739,7 @@ proc writegoogle_protobuf_FileOptions*(stream: ProtobufStream, message: google_p writeString(stream, message.php_namespace, 41) for value in message.uninterpreted_option: writeMessage(stream, value, 999) - writeUnknownFields(stream, message.unknownFields) + writeUnknownFields(stream, message) proc readgoogle_protobuf_FileOptions*(stream: ProtobufStream): google_protobuf_FileOptions = result = newgoogle_protobuf_FileOptions() @@ -3570,7 +3808,51 @@ proc readgoogle_protobuf_FileOptions*(stream: ProtobufStream): google_protobuf_F expectWireType(wireType, WireType.LengthDelimited) let data = readLengthDelimited(stream) adduninterpreted_option(result, newgoogle_protobuf_UninterpretedOption(data)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_FileOptions): JsonNode = + result = newJObject() + if hasjava_package(message): + result["javaPackage"] = %message.java_package + if hasjava_outer_classname(message): + result["javaOuterClassname"] = %message.java_outer_classname + if hasjava_multiple_files(message): + result["javaMultipleFiles"] = %message.java_multiple_files + if hasjava_generate_equals_and_hash(message): + result["javaGenerateEqualsAndHash"] = %message.java_generate_equals_and_hash + if hasjava_string_check_utf8(message): + result["javaStringCheckUtf8"] = %message.java_string_check_utf8 + if hasoptimize_for(message): + result["optimizeFor"] = %($message.optimize_for) + if hasgo_package(message): + result["goPackage"] = %message.go_package + if hascc_generic_services(message): + result["ccGenericServices"] = %message.cc_generic_services + if hasjava_generic_services(message): + result["javaGenericServices"] = %message.java_generic_services + if haspy_generic_services(message): + result["pyGenericServices"] = %message.py_generic_services + if hasphp_generic_services(message): + result["phpGenericServices"] = %message.php_generic_services + if hasdeprecated(message): + result["deprecated"] = %message.deprecated + if hascc_enable_arenas(message): + result["ccEnableArenas"] = %message.cc_enable_arenas + if hasobjc_class_prefix(message): + result["objcClassPrefix"] = %message.objc_class_prefix + if hascsharp_namespace(message): + result["csharpNamespace"] = %message.csharp_namespace + if hasswift_prefix(message): + result["swiftPrefix"] = %message.swift_prefix + if hasphp_class_prefix(message): + result["phpClassPrefix"] = %message.php_class_prefix + if hasphp_namespace(message): + result["phpNamespace"] = %message.php_namespace + if hasuninterpreted_option(message): + let arr = newJArray() + for value in message.uninterpreted_option: + add(arr, toJson(value)) + result["uninterpretedOption"] = arr proc serialize*(message: google_protobuf_FileOptions): string = let @@ -3588,21 +3870,20 @@ proc newgoogle_protobuf_FileOptions*(data: string): google_protobuf_FileOptions proc newgoogle_protobuf_ServiceOptions*(): google_protobuf_ServiceOptions = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.deprecated = false result.uninterpreted_option = @[] proc cleardeprecated*(message: google_protobuf_ServiceOptions) = message.deprecated = false - excl(message.hasField, [33]) + clearFields(message, [33]) proc hasdeprecated*(message: google_protobuf_ServiceOptions): bool = - result = contains(message.hasField, 33) + result = hasField(message, 33) proc setdeprecated*(message: google_protobuf_ServiceOptions, value: bool) = message.deprecated = value - incl(message.hasField, 33) + setField(message, 33) proc deprecated*(message: google_protobuf_ServiceOptions): bool {.inline.} = message.deprecated @@ -3612,18 +3893,18 @@ proc `deprecated=`*(message: google_protobuf_ServiceOptions, value: bool) {.inli proc clearuninterpreted_option*(message: google_protobuf_ServiceOptions) = message.uninterpreted_option = @[] - excl(message.hasField, [999]) + clearFields(message, [999]) proc hasuninterpreted_option*(message: google_protobuf_ServiceOptions): bool = - result = contains(message.hasField, 999) or (len(message.uninterpreted_option) > 0) + result = hasField(message, 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) + setField(message, 999) proc adduninterpreted_option*(message: google_protobuf_ServiceOptions, value: google_protobuf_UninterpretedOption) = add(message.uninterpreted_option, value) - incl(message.hasField, 999) + setField(message, 999) proc uninterpreted_option*(message: google_protobuf_ServiceOptions): seq[google_protobuf_UninterpretedOption] {.inline.} = message.uninterpreted_option @@ -3638,13 +3919,14 @@ proc sizeOfgoogle_protobuf_ServiceOptions*(message: google_protobuf_ServiceOptio for value in message.uninterpreted_option: result = result + sizeOfTag(999, WireType.LengthDelimited) result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_UninterpretedOption(value)) + result = result + sizeOfUnknownFields(message) 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) + writeUnknownFields(stream, message) proc readgoogle_protobuf_ServiceOptions*(stream: ProtobufStream): google_protobuf_ServiceOptions = result = newgoogle_protobuf_ServiceOptions() @@ -3662,7 +3944,17 @@ proc readgoogle_protobuf_ServiceOptions*(stream: ProtobufStream): google_protobu expectWireType(wireType, WireType.LengthDelimited) let data = readLengthDelimited(stream) adduninterpreted_option(result, newgoogle_protobuf_UninterpretedOption(data)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_ServiceOptions): JsonNode = + result = newJObject() + if hasdeprecated(message): + result["deprecated"] = %message.deprecated + if hasuninterpreted_option(message): + let arr = newJArray() + for value in message.uninterpreted_option: + add(arr, toJson(value)) + result["uninterpretedOption"] = arr proc serialize*(message: google_protobuf_ServiceOptions): string = let @@ -3680,22 +3972,21 @@ proc newgoogle_protobuf_ServiceOptions*(data: string): google_protobuf_ServiceOp proc newgoogle_protobuf_MethodOptions*(): google_protobuf_MethodOptions = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) 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]) + clearFields(message, [33]) proc hasdeprecated*(message: google_protobuf_MethodOptions): bool = - result = contains(message.hasField, 33) + result = hasField(message, 33) proc setdeprecated*(message: google_protobuf_MethodOptions, value: bool) = message.deprecated = value - incl(message.hasField, 33) + setField(message, 33) proc deprecated*(message: google_protobuf_MethodOptions): bool {.inline.} = message.deprecated @@ -3705,14 +3996,14 @@ proc `deprecated=`*(message: google_protobuf_MethodOptions, value: bool) {.inlin proc clearidempotency_level*(message: google_protobuf_MethodOptions) = message.idempotency_level = google_protobuf_MethodOptions_IdempotencyLevel.IDEMPOTENCY_UNKNOWN - excl(message.hasField, [34]) + clearFields(message, [34]) proc hasidempotency_level*(message: google_protobuf_MethodOptions): bool = - result = contains(message.hasField, 34) + result = hasField(message, 34) proc setidempotency_level*(message: google_protobuf_MethodOptions, value: google_protobuf_MethodOptions_IdempotencyLevel) = message.idempotency_level = value - incl(message.hasField, 34) + setField(message, 34) proc idempotency_level*(message: google_protobuf_MethodOptions): google_protobuf_MethodOptions_IdempotencyLevel {.inline.} = message.idempotency_level @@ -3722,18 +4013,18 @@ proc `idempotency_level=`*(message: google_protobuf_MethodOptions, value: google proc clearuninterpreted_option*(message: google_protobuf_MethodOptions) = message.uninterpreted_option = @[] - excl(message.hasField, [999]) + clearFields(message, [999]) proc hasuninterpreted_option*(message: google_protobuf_MethodOptions): bool = - result = contains(message.hasField, 999) or (len(message.uninterpreted_option) > 0) + result = hasField(message, 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) + setField(message, 999) proc adduninterpreted_option*(message: google_protobuf_MethodOptions, value: google_protobuf_UninterpretedOption) = add(message.uninterpreted_option, value) - incl(message.hasField, 999) + setField(message, 999) proc uninterpreted_option*(message: google_protobuf_MethodOptions): seq[google_protobuf_UninterpretedOption] {.inline.} = message.uninterpreted_option @@ -3751,6 +4042,7 @@ proc sizeOfgoogle_protobuf_MethodOptions*(message: google_protobuf_MethodOptions for value in message.uninterpreted_option: result = result + sizeOfTag(999, WireType.LengthDelimited) result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_UninterpretedOption(value)) + result = result + sizeOfUnknownFields(message) proc writegoogle_protobuf_MethodOptions*(stream: ProtobufStream, message: google_protobuf_MethodOptions) = if hasdeprecated(message): @@ -3759,7 +4051,7 @@ proc writegoogle_protobuf_MethodOptions*(stream: ProtobufStream, message: google writeEnum(stream, message.idempotency_level, 34) for value in message.uninterpreted_option: writeMessage(stream, value, 999) - writeUnknownFields(stream, message.unknownFields) + writeUnknownFields(stream, message) proc readgoogle_protobuf_MethodOptions*(stream: ProtobufStream): google_protobuf_MethodOptions = result = newgoogle_protobuf_MethodOptions() @@ -3780,7 +4072,19 @@ proc readgoogle_protobuf_MethodOptions*(stream: ProtobufStream): google_protobuf expectWireType(wireType, WireType.LengthDelimited) let data = readLengthDelimited(stream) adduninterpreted_option(result, newgoogle_protobuf_UninterpretedOption(data)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_MethodOptions): JsonNode = + result = newJObject() + if hasdeprecated(message): + result["deprecated"] = %message.deprecated + if hasidempotency_level(message): + result["idempotencyLevel"] = %($message.idempotency_level) + if hasuninterpreted_option(message): + let arr = newJArray() + for value in message.uninterpreted_option: + add(arr, toJson(value)) + result["uninterpretedOption"] = arr proc serialize*(message: google_protobuf_MethodOptions): string = let @@ -3798,8 +4102,7 @@ proc newgoogle_protobuf_MethodOptions*(data: string): google_protobuf_MethodOpti proc newgoogle_protobuf_MethodDescriptorProto*(): google_protobuf_MethodDescriptorProto = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.name = "" result.input_type = "" result.output_type = "" @@ -3809,14 +4112,14 @@ proc newgoogle_protobuf_MethodDescriptorProto*(): google_protobuf_MethodDescript proc clearname*(message: google_protobuf_MethodDescriptorProto) = message.name = "" - excl(message.hasField, [1]) + clearFields(message, [1]) proc hasname*(message: google_protobuf_MethodDescriptorProto): bool = - result = contains(message.hasField, 1) + result = hasField(message, 1) proc setname*(message: google_protobuf_MethodDescriptorProto, value: string) = message.name = value - incl(message.hasField, 1) + setField(message, 1) proc name*(message: google_protobuf_MethodDescriptorProto): string {.inline.} = message.name @@ -3826,14 +4129,14 @@ proc `name=`*(message: google_protobuf_MethodDescriptorProto, value: string) {.i proc clearinput_type*(message: google_protobuf_MethodDescriptorProto) = message.input_type = "" - excl(message.hasField, [2]) + clearFields(message, [2]) proc hasinput_type*(message: google_protobuf_MethodDescriptorProto): bool = - result = contains(message.hasField, 2) + result = hasField(message, 2) proc setinput_type*(message: google_protobuf_MethodDescriptorProto, value: string) = message.input_type = value - incl(message.hasField, 2) + setField(message, 2) proc input_type*(message: google_protobuf_MethodDescriptorProto): string {.inline.} = message.input_type @@ -3843,14 +4146,14 @@ proc `input_type=`*(message: google_protobuf_MethodDescriptorProto, value: strin proc clearoutput_type*(message: google_protobuf_MethodDescriptorProto) = message.output_type = "" - excl(message.hasField, [3]) + clearFields(message, [3]) proc hasoutput_type*(message: google_protobuf_MethodDescriptorProto): bool = - result = contains(message.hasField, 3) + result = hasField(message, 3) proc setoutput_type*(message: google_protobuf_MethodDescriptorProto, value: string) = message.output_type = value - incl(message.hasField, 3) + setField(message, 3) proc output_type*(message: google_protobuf_MethodDescriptorProto): string {.inline.} = message.output_type @@ -3860,14 +4163,14 @@ proc `output_type=`*(message: google_protobuf_MethodDescriptorProto, value: stri proc clearoptions*(message: google_protobuf_MethodDescriptorProto) = message.options = nil - excl(message.hasField, [4]) + clearFields(message, [4]) proc hasoptions*(message: google_protobuf_MethodDescriptorProto): bool = - result = contains(message.hasField, 4) + result = hasField(message, 4) proc setoptions*(message: google_protobuf_MethodDescriptorProto, value: google_protobuf_MethodOptions) = message.options = value - incl(message.hasField, 4) + setField(message, 4) proc options*(message: google_protobuf_MethodDescriptorProto): google_protobuf_MethodOptions {.inline.} = message.options @@ -3877,14 +4180,14 @@ proc `options=`*(message: google_protobuf_MethodDescriptorProto, value: google_p proc clearclient_streaming*(message: google_protobuf_MethodDescriptorProto) = message.client_streaming = false - excl(message.hasField, [5]) + clearFields(message, [5]) proc hasclient_streaming*(message: google_protobuf_MethodDescriptorProto): bool = - result = contains(message.hasField, 5) + result = hasField(message, 5) proc setclient_streaming*(message: google_protobuf_MethodDescriptorProto, value: bool) = message.client_streaming = value - incl(message.hasField, 5) + setField(message, 5) proc client_streaming*(message: google_protobuf_MethodDescriptorProto): bool {.inline.} = message.client_streaming @@ -3894,14 +4197,14 @@ proc `client_streaming=`*(message: google_protobuf_MethodDescriptorProto, value: proc clearserver_streaming*(message: google_protobuf_MethodDescriptorProto) = message.server_streaming = false - excl(message.hasField, [6]) + clearFields(message, [6]) proc hasserver_streaming*(message: google_protobuf_MethodDescriptorProto): bool = - result = contains(message.hasField, 6) + result = hasField(message, 6) proc setserver_streaming*(message: google_protobuf_MethodDescriptorProto, value: bool) = message.server_streaming = value - incl(message.hasField, 6) + setField(message, 6) proc server_streaming*(message: google_protobuf_MethodDescriptorProto): bool {.inline.} = message.server_streaming @@ -3928,6 +4231,7 @@ proc sizeOfgoogle_protobuf_MethodDescriptorProto*(message: google_protobuf_Metho if hasserver_streaming(message): result = result + sizeOfTag(6, WireType.Varint) result = result + sizeOfBool(message.server_streaming) + result = result + sizeOfUnknownFields(message) proc writegoogle_protobuf_MethodDescriptorProto*(stream: ProtobufStream, message: google_protobuf_MethodDescriptorProto) = if hasname(message): @@ -3942,7 +4246,7 @@ proc writegoogle_protobuf_MethodDescriptorProto*(stream: ProtobufStream, message writeBool(stream, message.client_streaming, 5) if hasserver_streaming(message): writeBool(stream, message.server_streaming, 6) - writeUnknownFields(stream, message.unknownFields) + writeUnknownFields(stream, message) proc readgoogle_protobuf_MethodDescriptorProto*(stream: ProtobufStream): google_protobuf_MethodDescriptorProto = result = newgoogle_protobuf_MethodDescriptorProto() @@ -3972,7 +4276,22 @@ proc readgoogle_protobuf_MethodDescriptorProto*(stream: ProtobufStream): google_ of 6: expectWireType(wireType, WireType.Varint) setserver_streaming(result, readBool(stream)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_MethodDescriptorProto): JsonNode = + result = newJObject() + if hasname(message): + result["name"] = %message.name + if hasinput_type(message): + result["inputType"] = %message.input_type + if hasoutput_type(message): + result["outputType"] = %message.output_type + if hasoptions(message): + result["options"] = toJson(message.options) + if hasclient_streaming(message): + result["clientStreaming"] = %message.client_streaming + if hasserver_streaming(message): + result["serverStreaming"] = %message.server_streaming proc serialize*(message: google_protobuf_MethodDescriptorProto): string = let @@ -3990,22 +4309,21 @@ proc newgoogle_protobuf_MethodDescriptorProto*(data: string): google_protobuf_Me proc newgoogle_protobuf_ServiceDescriptorProto*(): google_protobuf_ServiceDescriptorProto = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.name = "" result.fmethod = @[] result.options = nil proc clearname*(message: google_protobuf_ServiceDescriptorProto) = message.name = "" - excl(message.hasField, [1]) + clearFields(message, [1]) proc hasname*(message: google_protobuf_ServiceDescriptorProto): bool = - result = contains(message.hasField, 1) + result = hasField(message, 1) proc setname*(message: google_protobuf_ServiceDescriptorProto, value: string) = message.name = value - incl(message.hasField, 1) + setField(message, 1) proc name*(message: google_protobuf_ServiceDescriptorProto): string {.inline.} = message.name @@ -4015,18 +4333,18 @@ proc `name=`*(message: google_protobuf_ServiceDescriptorProto, value: string) {. proc clearfmethod*(message: google_protobuf_ServiceDescriptorProto) = message.fmethod = @[] - excl(message.hasField, [2]) + clearFields(message, [2]) proc hasfmethod*(message: google_protobuf_ServiceDescriptorProto): bool = - result = contains(message.hasField, 2) or (len(message.fmethod) > 0) + result = hasField(message, 2) or (len(message.fmethod) > 0) proc setfmethod*(message: google_protobuf_ServiceDescriptorProto, value: seq[google_protobuf_MethodDescriptorProto]) = message.fmethod = value - incl(message.hasField, 2) + setField(message, 2) proc addfmethod*(message: google_protobuf_ServiceDescriptorProto, value: google_protobuf_MethodDescriptorProto) = add(message.fmethod, value) - incl(message.hasField, 2) + setField(message, 2) proc fmethod*(message: google_protobuf_ServiceDescriptorProto): seq[google_protobuf_MethodDescriptorProto] {.inline.} = message.fmethod @@ -4036,14 +4354,14 @@ proc `fmethod=`*(message: google_protobuf_ServiceDescriptorProto, value: seq[goo proc clearoptions*(message: google_protobuf_ServiceDescriptorProto) = message.options = nil - excl(message.hasField, [3]) + clearFields(message, [3]) proc hasoptions*(message: google_protobuf_ServiceDescriptorProto): bool = - result = contains(message.hasField, 3) + result = hasField(message, 3) proc setoptions*(message: google_protobuf_ServiceDescriptorProto, value: google_protobuf_ServiceOptions) = message.options = value - incl(message.hasField, 3) + setField(message, 3) proc options*(message: google_protobuf_ServiceDescriptorProto): google_protobuf_ServiceOptions {.inline.} = message.options @@ -4061,6 +4379,7 @@ proc sizeOfgoogle_protobuf_ServiceDescriptorProto*(message: google_protobuf_Serv if hasoptions(message): result = result + sizeOfTag(3, WireType.LengthDelimited) result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_ServiceOptions(message.options)) + result = result + sizeOfUnknownFields(message) proc writegoogle_protobuf_ServiceDescriptorProto*(stream: ProtobufStream, message: google_protobuf_ServiceDescriptorProto) = if hasname(message): @@ -4069,7 +4388,7 @@ proc writegoogle_protobuf_ServiceDescriptorProto*(stream: ProtobufStream, messag writeMessage(stream, value, 2) if hasoptions(message): writeMessage(stream, message.options, 3) - writeUnknownFields(stream, message.unknownFields) + writeUnknownFields(stream, message) proc readgoogle_protobuf_ServiceDescriptorProto*(stream: ProtobufStream): google_protobuf_ServiceDescriptorProto = result = newgoogle_protobuf_ServiceDescriptorProto() @@ -4091,7 +4410,19 @@ proc readgoogle_protobuf_ServiceDescriptorProto*(stream: ProtobufStream): google expectWireType(wireType, WireType.LengthDelimited) let data = readLengthDelimited(stream) setoptions(result, newgoogle_protobuf_ServiceOptions(data)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_ServiceDescriptorProto): JsonNode = + result = newJObject() + if hasname(message): + result["name"] = %message.name + if hasfmethod(message): + let arr = newJArray() + for value in message.fmethod: + add(arr, toJson(value)) + result["method"] = arr + if hasoptions(message): + result["options"] = toJson(message.options) proc serialize*(message: google_protobuf_ServiceDescriptorProto): string = let @@ -4109,8 +4440,7 @@ proc newgoogle_protobuf_ServiceDescriptorProto*(data: string): google_protobuf_S proc newgoogle_protobuf_FileDescriptorProto*(): google_protobuf_FileDescriptorProto = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.name = "" result.package = "" result.dependency = @[] @@ -4126,14 +4456,14 @@ proc newgoogle_protobuf_FileDescriptorProto*(): google_protobuf_FileDescriptorPr proc clearname*(message: google_protobuf_FileDescriptorProto) = message.name = "" - excl(message.hasField, [1]) + clearFields(message, [1]) proc hasname*(message: google_protobuf_FileDescriptorProto): bool = - result = contains(message.hasField, 1) + result = hasField(message, 1) proc setname*(message: google_protobuf_FileDescriptorProto, value: string) = message.name = value - incl(message.hasField, 1) + setField(message, 1) proc name*(message: google_protobuf_FileDescriptorProto): string {.inline.} = message.name @@ -4143,14 +4473,14 @@ proc `name=`*(message: google_protobuf_FileDescriptorProto, value: string) {.inl proc clearpackage*(message: google_protobuf_FileDescriptorProto) = message.package = "" - excl(message.hasField, [2]) + clearFields(message, [2]) proc haspackage*(message: google_protobuf_FileDescriptorProto): bool = - result = contains(message.hasField, 2) + result = hasField(message, 2) proc setpackage*(message: google_protobuf_FileDescriptorProto, value: string) = message.package = value - incl(message.hasField, 2) + setField(message, 2) proc package*(message: google_protobuf_FileDescriptorProto): string {.inline.} = message.package @@ -4160,18 +4490,18 @@ proc `package=`*(message: google_protobuf_FileDescriptorProto, value: string) {. proc cleardependency*(message: google_protobuf_FileDescriptorProto) = message.dependency = @[] - excl(message.hasField, [3]) + clearFields(message, [3]) proc hasdependency*(message: google_protobuf_FileDescriptorProto): bool = - result = contains(message.hasField, 3) or (len(message.dependency) > 0) + result = hasField(message, 3) or (len(message.dependency) > 0) proc setdependency*(message: google_protobuf_FileDescriptorProto, value: seq[string]) = message.dependency = value - incl(message.hasField, 3) + setField(message, 3) proc adddependency*(message: google_protobuf_FileDescriptorProto, value: string) = add(message.dependency, value) - incl(message.hasField, 3) + setField(message, 3) proc dependency*(message: google_protobuf_FileDescriptorProto): seq[string] {.inline.} = message.dependency @@ -4181,18 +4511,18 @@ proc `dependency=`*(message: google_protobuf_FileDescriptorProto, value: seq[str proc clearpublic_dependency*(message: google_protobuf_FileDescriptorProto) = message.public_dependency = @[] - excl(message.hasField, [10]) + clearFields(message, [10]) proc haspublic_dependency*(message: google_protobuf_FileDescriptorProto): bool = - result = contains(message.hasField, 10) or (len(message.public_dependency) > 0) + result = hasField(message, 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) + setField(message, 10) proc addpublic_dependency*(message: google_protobuf_FileDescriptorProto, value: int32) = add(message.public_dependency, value) - incl(message.hasField, 10) + setField(message, 10) proc public_dependency*(message: google_protobuf_FileDescriptorProto): seq[int32] {.inline.} = message.public_dependency @@ -4202,18 +4532,18 @@ proc `public_dependency=`*(message: google_protobuf_FileDescriptorProto, value: proc clearweak_dependency*(message: google_protobuf_FileDescriptorProto) = message.weak_dependency = @[] - excl(message.hasField, [11]) + clearFields(message, [11]) proc hasweak_dependency*(message: google_protobuf_FileDescriptorProto): bool = - result = contains(message.hasField, 11) or (len(message.weak_dependency) > 0) + result = hasField(message, 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) + setField(message, 11) proc addweak_dependency*(message: google_protobuf_FileDescriptorProto, value: int32) = add(message.weak_dependency, value) - incl(message.hasField, 11) + setField(message, 11) proc weak_dependency*(message: google_protobuf_FileDescriptorProto): seq[int32] {.inline.} = message.weak_dependency @@ -4223,18 +4553,18 @@ proc `weak_dependency=`*(message: google_protobuf_FileDescriptorProto, value: se proc clearmessage_type*(message: google_protobuf_FileDescriptorProto) = message.message_type = @[] - excl(message.hasField, [4]) + clearFields(message, [4]) proc hasmessage_type*(message: google_protobuf_FileDescriptorProto): bool = - result = contains(message.hasField, 4) or (len(message.message_type) > 0) + result = hasField(message, 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) + setField(message, 4) proc addmessage_type*(message: google_protobuf_FileDescriptorProto, value: google_protobuf_DescriptorProto) = add(message.message_type, value) - incl(message.hasField, 4) + setField(message, 4) proc message_type*(message: google_protobuf_FileDescriptorProto): seq[google_protobuf_DescriptorProto] {.inline.} = message.message_type @@ -4244,18 +4574,18 @@ proc `message_type=`*(message: google_protobuf_FileDescriptorProto, value: seq[g proc clearenum_type*(message: google_protobuf_FileDescriptorProto) = message.enum_type = @[] - excl(message.hasField, [5]) + clearFields(message, [5]) proc hasenum_type*(message: google_protobuf_FileDescriptorProto): bool = - result = contains(message.hasField, 5) or (len(message.enum_type) > 0) + result = hasField(message, 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) + setField(message, 5) proc addenum_type*(message: google_protobuf_FileDescriptorProto, value: google_protobuf_EnumDescriptorProto) = add(message.enum_type, value) - incl(message.hasField, 5) + setField(message, 5) proc enum_type*(message: google_protobuf_FileDescriptorProto): seq[google_protobuf_EnumDescriptorProto] {.inline.} = message.enum_type @@ -4265,18 +4595,18 @@ proc `enum_type=`*(message: google_protobuf_FileDescriptorProto, value: seq[goog proc clearservice*(message: google_protobuf_FileDescriptorProto) = message.service = @[] - excl(message.hasField, [6]) + clearFields(message, [6]) proc hasservice*(message: google_protobuf_FileDescriptorProto): bool = - result = contains(message.hasField, 6) or (len(message.service) > 0) + result = hasField(message, 6) or (len(message.service) > 0) proc setservice*(message: google_protobuf_FileDescriptorProto, value: seq[google_protobuf_ServiceDescriptorProto]) = message.service = value - incl(message.hasField, 6) + setField(message, 6) proc addservice*(message: google_protobuf_FileDescriptorProto, value: google_protobuf_ServiceDescriptorProto) = add(message.service, value) - incl(message.hasField, 6) + setField(message, 6) proc service*(message: google_protobuf_FileDescriptorProto): seq[google_protobuf_ServiceDescriptorProto] {.inline.} = message.service @@ -4286,18 +4616,18 @@ proc `service=`*(message: google_protobuf_FileDescriptorProto, value: seq[google proc clearextension*(message: google_protobuf_FileDescriptorProto) = message.extension = @[] - excl(message.hasField, [7]) + clearFields(message, [7]) proc hasextension*(message: google_protobuf_FileDescriptorProto): bool = - result = contains(message.hasField, 7) or (len(message.extension) > 0) + result = hasField(message, 7) or (len(message.extension) > 0) proc setextension*(message: google_protobuf_FileDescriptorProto, value: seq[google_protobuf_FieldDescriptorProto]) = message.extension = value - incl(message.hasField, 7) + setField(message, 7) proc addextension*(message: google_protobuf_FileDescriptorProto, value: google_protobuf_FieldDescriptorProto) = add(message.extension, value) - incl(message.hasField, 7) + setField(message, 7) proc extension*(message: google_protobuf_FileDescriptorProto): seq[google_protobuf_FieldDescriptorProto] {.inline.} = message.extension @@ -4307,14 +4637,14 @@ proc `extension=`*(message: google_protobuf_FileDescriptorProto, value: seq[goog proc clearoptions*(message: google_protobuf_FileDescriptorProto) = message.options = nil - excl(message.hasField, [8]) + clearFields(message, [8]) proc hasoptions*(message: google_protobuf_FileDescriptorProto): bool = - result = contains(message.hasField, 8) + result = hasField(message, 8) proc setoptions*(message: google_protobuf_FileDescriptorProto, value: google_protobuf_FileOptions) = message.options = value - incl(message.hasField, 8) + setField(message, 8) proc options*(message: google_protobuf_FileDescriptorProto): google_protobuf_FileOptions {.inline.} = message.options @@ -4324,14 +4654,14 @@ proc `options=`*(message: google_protobuf_FileDescriptorProto, value: google_pro proc clearsource_code_info*(message: google_protobuf_FileDescriptorProto) = message.source_code_info = nil - excl(message.hasField, [9]) + clearFields(message, [9]) proc hassource_code_info*(message: google_protobuf_FileDescriptorProto): bool = - result = contains(message.hasField, 9) + result = hasField(message, 9) proc setsource_code_info*(message: google_protobuf_FileDescriptorProto, value: google_protobuf_SourceCodeInfo) = message.source_code_info = value - incl(message.hasField, 9) + setField(message, 9) proc source_code_info*(message: google_protobuf_FileDescriptorProto): google_protobuf_SourceCodeInfo {.inline.} = message.source_code_info @@ -4341,14 +4671,14 @@ proc `source_code_info=`*(message: google_protobuf_FileDescriptorProto, value: g proc clearsyntax*(message: google_protobuf_FileDescriptorProto) = message.syntax = "" - excl(message.hasField, [12]) + clearFields(message, [12]) proc hassyntax*(message: google_protobuf_FileDescriptorProto): bool = - result = contains(message.hasField, 12) + result = hasField(message, 12) proc setsyntax*(message: google_protobuf_FileDescriptorProto, value: string) = message.syntax = value - incl(message.hasField, 12) + setField(message, 12) proc syntax*(message: google_protobuf_FileDescriptorProto): string {.inline.} = message.syntax @@ -4393,6 +4723,7 @@ proc sizeOfgoogle_protobuf_FileDescriptorProto*(message: google_protobuf_FileDes if hassyntax(message): result = result + sizeOfTag(12, WireType.LengthDelimited) result = result + sizeOfString(message.syntax) + result = result + sizeOfUnknownFields(message) proc writegoogle_protobuf_FileDescriptorProto*(stream: ProtobufStream, message: google_protobuf_FileDescriptorProto) = if hasname(message): @@ -4419,7 +4750,7 @@ proc writegoogle_protobuf_FileDescriptorProto*(stream: ProtobufStream, message: writeMessage(stream, message.source_code_info, 9) if hassyntax(message): writeString(stream, message.syntax, 12) - writeUnknownFields(stream, message.unknownFields) + writeUnknownFields(stream, message) proc readgoogle_protobuf_FileDescriptorProto*(stream: ProtobufStream): google_protobuf_FileDescriptorProto = result = newgoogle_protobuf_FileDescriptorProto() @@ -4494,7 +4825,55 @@ proc readgoogle_protobuf_FileDescriptorProto*(stream: ProtobufStream): google_pr of 12: expectWireType(wireType, WireType.LengthDelimited) setsyntax(result, readString(stream)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_FileDescriptorProto): JsonNode = + result = newJObject() + if hasname(message): + result["name"] = %message.name + if haspackage(message): + result["package"] = %message.package + if hasdependency(message): + let arr = newJArray() + for value in message.dependency: + add(arr, %value) + result["dependency"] = arr + if haspublic_dependency(message): + let arr = newJArray() + for value in message.public_dependency: + add(arr, %value) + result["publicDependency"] = arr + if hasweak_dependency(message): + let arr = newJArray() + for value in message.weak_dependency: + add(arr, %value) + result["weakDependency"] = arr + if hasmessage_type(message): + let arr = newJArray() + for value in message.message_type: + add(arr, toJson(value)) + result["messageType"] = arr + if hasenum_type(message): + let arr = newJArray() + for value in message.enum_type: + add(arr, toJson(value)) + result["enumType"] = arr + if hasservice(message): + let arr = newJArray() + for value in message.service: + add(arr, toJson(value)) + result["service"] = arr + if hasextension(message): + let arr = newJArray() + for value in message.extension: + add(arr, toJson(value)) + result["extension"] = arr + if hasoptions(message): + result["options"] = toJson(message.options) + if hassource_code_info(message): + result["sourceCodeInfo"] = toJson(message.source_code_info) + if hassyntax(message): + result["syntax"] = %message.syntax proc serialize*(message: google_protobuf_FileDescriptorProto): string = let @@ -4512,24 +4891,23 @@ proc newgoogle_protobuf_FileDescriptorProto*(data: string): google_protobuf_File proc newgoogle_protobuf_FileDescriptorSet*(): google_protobuf_FileDescriptorSet = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.file = @[] proc clearfile*(message: google_protobuf_FileDescriptorSet) = message.file = @[] - excl(message.hasField, [1]) + clearFields(message, [1]) proc hasfile*(message: google_protobuf_FileDescriptorSet): bool = - result = contains(message.hasField, 1) or (len(message.file) > 0) + result = hasField(message, 1) or (len(message.file) > 0) proc setfile*(message: google_protobuf_FileDescriptorSet, value: seq[google_protobuf_FileDescriptorProto]) = message.file = value - incl(message.hasField, 1) + setField(message, 1) proc addfile*(message: google_protobuf_FileDescriptorSet, value: google_protobuf_FileDescriptorProto) = add(message.file, value) - incl(message.hasField, 1) + setField(message, 1) proc file*(message: google_protobuf_FileDescriptorSet): seq[google_protobuf_FileDescriptorProto] {.inline.} = message.file @@ -4541,11 +4919,12 @@ proc sizeOfgoogle_protobuf_FileDescriptorSet*(message: google_protobuf_FileDescr for value in message.file: result = result + sizeOfTag(1, WireType.LengthDelimited) result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_FileDescriptorProto(value)) + result = result + sizeOfUnknownFields(message) proc writegoogle_protobuf_FileDescriptorSet*(stream: ProtobufStream, message: google_protobuf_FileDescriptorSet) = for value in message.file: writeMessage(stream, value, 1) - writeUnknownFields(stream, message.unknownFields) + writeUnknownFields(stream, message) proc readgoogle_protobuf_FileDescriptorSet*(stream: ProtobufStream): google_protobuf_FileDescriptorSet = result = newgoogle_protobuf_FileDescriptorSet() @@ -4560,7 +4939,15 @@ proc readgoogle_protobuf_FileDescriptorSet*(stream: ProtobufStream): google_prot expectWireType(wireType, WireType.LengthDelimited) let data = readLengthDelimited(stream) addfile(result, newgoogle_protobuf_FileDescriptorProto(data)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_FileDescriptorSet): JsonNode = + result = newJObject() + if hasfile(message): + let arr = newJArray() + for value in message.file: + add(arr, toJson(value)) + result["file"] = arr proc serialize*(message: google_protobuf_FileDescriptorSet): string = let @@ -4578,8 +4965,7 @@ proc newgoogle_protobuf_FileDescriptorSet*(data: string): google_protobuf_FileDe proc newgoogle_protobuf_GeneratedCodeInfo_Annotation*(): google_protobuf_GeneratedCodeInfo_Annotation = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.path = @[] result.source_file = "" result.begin = 0 @@ -4587,18 +4973,18 @@ proc newgoogle_protobuf_GeneratedCodeInfo_Annotation*(): google_protobuf_Generat proc clearpath*(message: google_protobuf_GeneratedCodeInfo_Annotation) = message.path = @[] - excl(message.hasField, [1]) + clearFields(message, [1]) proc haspath*(message: google_protobuf_GeneratedCodeInfo_Annotation): bool = - result = contains(message.hasField, 1) or (len(message.path) > 0) + result = hasField(message, 1) or (len(message.path) > 0) proc setpath*(message: google_protobuf_GeneratedCodeInfo_Annotation, value: seq[int32]) = message.path = value - incl(message.hasField, 1) + setField(message, 1) proc addpath*(message: google_protobuf_GeneratedCodeInfo_Annotation, value: int32) = add(message.path, value) - incl(message.hasField, 1) + setField(message, 1) proc path*(message: google_protobuf_GeneratedCodeInfo_Annotation): seq[int32] {.inline.} = message.path @@ -4608,14 +4994,14 @@ proc `path=`*(message: google_protobuf_GeneratedCodeInfo_Annotation, value: seq[ proc clearsource_file*(message: google_protobuf_GeneratedCodeInfo_Annotation) = message.source_file = "" - excl(message.hasField, [2]) + clearFields(message, [2]) proc hassource_file*(message: google_protobuf_GeneratedCodeInfo_Annotation): bool = - result = contains(message.hasField, 2) + result = hasField(message, 2) proc setsource_file*(message: google_protobuf_GeneratedCodeInfo_Annotation, value: string) = message.source_file = value - incl(message.hasField, 2) + setField(message, 2) proc source_file*(message: google_protobuf_GeneratedCodeInfo_Annotation): string {.inline.} = message.source_file @@ -4625,14 +5011,14 @@ proc `source_file=`*(message: google_protobuf_GeneratedCodeInfo_Annotation, valu proc clearbegin*(message: google_protobuf_GeneratedCodeInfo_Annotation) = message.begin = 0 - excl(message.hasField, [3]) + clearFields(message, [3]) proc hasbegin*(message: google_protobuf_GeneratedCodeInfo_Annotation): bool = - result = contains(message.hasField, 3) + result = hasField(message, 3) proc setbegin*(message: google_protobuf_GeneratedCodeInfo_Annotation, value: int32) = message.begin = value - incl(message.hasField, 3) + setField(message, 3) proc begin*(message: google_protobuf_GeneratedCodeInfo_Annotation): int32 {.inline.} = message.begin @@ -4642,14 +5028,14 @@ proc `begin=`*(message: google_protobuf_GeneratedCodeInfo_Annotation, value: int proc clearfend*(message: google_protobuf_GeneratedCodeInfo_Annotation) = message.fend = 0 - excl(message.hasField, [4]) + clearFields(message, [4]) proc hasfend*(message: google_protobuf_GeneratedCodeInfo_Annotation): bool = - result = contains(message.hasField, 4) + result = hasField(message, 4) proc setfend*(message: google_protobuf_GeneratedCodeInfo_Annotation, value: int32) = message.fend = value - incl(message.hasField, 4) + setField(message, 4) proc fend*(message: google_protobuf_GeneratedCodeInfo_Annotation): int32 {.inline.} = message.fend @@ -4670,6 +5056,7 @@ proc sizeOfgoogle_protobuf_GeneratedCodeInfo_Annotation*(message: google_protobu if hasfend(message): result = result + sizeOfTag(4, WireType.Varint) result = result + sizeOfInt32(message.fend) + result = result + sizeOfUnknownFields(message) proc writegoogle_protobuf_GeneratedCodeInfo_Annotation*(stream: ProtobufStream, message: google_protobuf_GeneratedCodeInfo_Annotation) = if haspath(message): @@ -4683,7 +5070,7 @@ proc writegoogle_protobuf_GeneratedCodeInfo_Annotation*(stream: ProtobufStream, writeInt32(stream, message.begin, 3) if hasfend(message): writeInt32(stream, message.fend, 4) - writeUnknownFields(stream, message.unknownFields) + writeUnknownFields(stream, message) proc readgoogle_protobuf_GeneratedCodeInfo_Annotation*(stream: ProtobufStream): google_protobuf_GeneratedCodeInfo_Annotation = result = newgoogle_protobuf_GeneratedCodeInfo_Annotation() @@ -4717,7 +5104,21 @@ proc readgoogle_protobuf_GeneratedCodeInfo_Annotation*(stream: ProtobufStream): of 4: expectWireType(wireType, WireType.Varint) setfend(result, readInt32(stream)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_GeneratedCodeInfo_Annotation): JsonNode = + result = newJObject() + if haspath(message): + let arr = newJArray() + for value in message.path: + add(arr, %value) + result["path"] = arr + if hassource_file(message): + result["sourceFile"] = %message.source_file + if hasbegin(message): + result["begin"] = %message.begin + if hasfend(message): + result["end"] = %message.fend proc serialize*(message: google_protobuf_GeneratedCodeInfo_Annotation): string = let @@ -4735,24 +5136,23 @@ proc newgoogle_protobuf_GeneratedCodeInfo_Annotation*(data: string): google_prot proc newgoogle_protobuf_GeneratedCodeInfo*(): google_protobuf_GeneratedCodeInfo = new(result) - result.hasField = initIntSet() - result.unknownFields = @[] + initMessage(result[]) result.annotation = @[] proc clearannotation*(message: google_protobuf_GeneratedCodeInfo) = message.annotation = @[] - excl(message.hasField, [1]) + clearFields(message, [1]) proc hasannotation*(message: google_protobuf_GeneratedCodeInfo): bool = - result = contains(message.hasField, 1) or (len(message.annotation) > 0) + result = hasField(message, 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) + setField(message, 1) proc addannotation*(message: google_protobuf_GeneratedCodeInfo, value: google_protobuf_GeneratedCodeInfo_Annotation) = add(message.annotation, value) - incl(message.hasField, 1) + setField(message, 1) proc annotation*(message: google_protobuf_GeneratedCodeInfo): seq[google_protobuf_GeneratedCodeInfo_Annotation] {.inline.} = message.annotation @@ -4764,11 +5164,12 @@ proc sizeOfgoogle_protobuf_GeneratedCodeInfo*(message: google_protobuf_Generated for value in message.annotation: result = result + sizeOfTag(1, WireType.LengthDelimited) result = result + sizeOfLengthDelimited(sizeOfgoogle_protobuf_GeneratedCodeInfo_Annotation(value)) + result = result + sizeOfUnknownFields(message) proc writegoogle_protobuf_GeneratedCodeInfo*(stream: ProtobufStream, message: google_protobuf_GeneratedCodeInfo) = for value in message.annotation: writeMessage(stream, value, 1) - writeUnknownFields(stream, message.unknownFields) + writeUnknownFields(stream, message) proc readgoogle_protobuf_GeneratedCodeInfo*(stream: ProtobufStream): google_protobuf_GeneratedCodeInfo = result = newgoogle_protobuf_GeneratedCodeInfo() @@ -4783,7 +5184,15 @@ proc readgoogle_protobuf_GeneratedCodeInfo*(stream: ProtobufStream): google_prot expectWireType(wireType, WireType.LengthDelimited) let data = readLengthDelimited(stream) addannotation(result, newgoogle_protobuf_GeneratedCodeInfo_Annotation(data)) - else: readUnknownField(stream, tag, result.unknownFields) + else: readUnknownField(stream, result, tag) + +proc toJson*(message: google_protobuf_GeneratedCodeInfo): JsonNode = + result = newJObject() + if hasannotation(message): + let arr = newJArray() + for value in message.annotation: + add(arr, toJson(value)) + result["annotation"] = arr proc serialize*(message: google_protobuf_GeneratedCodeInfo): string = let diff --git a/nimpb/compiler/generator.nim b/nimpb/compiler/generator.nim index ea3531a..6fdeae1 100644 --- a/nimpb/compiler/generator.nim +++ b/nimpb/compiler/generator.nim @@ -591,9 +591,7 @@ proc mapValueField(message: Message): 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) + yield &"{message.names}Obj* = object of Message" for field in message.fields: if isMapEntry(field): @@ -613,8 +611,7 @@ iterator genType(message: Message): string = 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) + yield indent("initMessage(result[])", 4) for field in msg.fields: yield indent(&"result.{field.accessor} = {defaultValue(field)}", 4) yield "" @@ -632,12 +629,12 @@ iterator genClearFieldProc(msg: Message, field: Field): string = var numbers: seq[int] = @[field.number] for sibling in oneofSiblings(field): add(numbers, sibling.number) - yield indent(&"excl(message.hasField, [{join(numbers, \", \")}])", 4) + yield indent(&"clearFields(message, [{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) + var check = indent(&"result = hasField(message, {field.number})", 4) if isRepeated(field) or isMapEntry(field): check = &"{check} or (len(message.{field.accessor}) > 0)" yield check @@ -646,18 +643,18 @@ iterator genHasFieldProc(msg: Message, field: Field): string = 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) + yield indent(&"setField(message, {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 indent(&"clearFields(message, [{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 indent(&"setField(message, {field.number})", 4) yield "" iterator genFieldAccessorProcs(msg: Message, field: Field): string = @@ -702,7 +699,7 @@ iterator genWriteMessageProc(msg: Message): string = 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 indent("writeUnknownFields(stream, message)", 4) yield "" @@ -798,7 +795,7 @@ iterator genReadMessageProc(msg: Message): string = 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 indent("else: readUnknownField(stream, result, tag)", 8) yield "" iterator genSizeOfMapKVProc(message: Message): string = @@ -851,8 +848,7 @@ iterator genSizeOfMessageProc(msg: Message): string = 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 indent("result = result + sizeOfUnknownFields(message)", 4) yield "" diff --git a/nimpb/compiler/nimpb_build.nim.cfg b/nimpb/compiler/nimpb_build.nim.cfg new file mode 100644 index 0000000..1c2f0c1 --- /dev/null +++ b/nimpb/compiler/nimpb_build.nim.cfg @@ -0,0 +1 @@ +--path:"../.." diff --git a/nimpb/nimpb.nim b/nimpb/nimpb.nim index 4363c7d..2d0289c 100644 --- a/nimpb/nimpb.nim +++ b/nimpb/nimpb.nim @@ -70,6 +70,11 @@ type else: discard + Message* = ref MessageObj + MessageObj* = object of RootObj + hasField: IntSet + unknownFields: seq[UnknownField] + proc wiretype*(ft: FieldType): WireType = case ft of FieldType.Double: result = WireType.Fixed64 @@ -572,6 +577,9 @@ proc readUnknownField*(stream: ProtobufStream, tag: Tag, add(fields, field) +proc readUnknownField*(stream: ProtobufStream, message: Message, tag: Tag) = + readUnknownField(stream, tag, message.unknownFields) + proc writeUnknownFields*(stream: ProtobufStream, fields: seq[UnknownField]) = for field in fields: case field.wiretype @@ -587,6 +595,9 @@ proc writeUnknownFields*(stream: ProtobufStream, fields: seq[UnknownField]) = else: raise newException(Exception, "unsupported wiretype: " & $field.wiretype) +proc writeUnknownFields*(stream: ProtobufStream, message: Message) = + writeUnknownFields(stream, message.unknownFields) + proc discardUnknownFields*[T](message: T) = message.unknownFields = @[] @@ -603,3 +614,25 @@ proc sizeOfUnknownField*(field: UnknownField): uint64 = result = result + sizeOfLengthDelimited(uint64(len(field.data))) else: raise newException(Exception, "unsupported wiretype: " & $field.wiretype) + +proc sizeOfUnknownFields*(message: Message): uint64 = + for field in message.unknownFields: + result = result + sizeOfUnknownField(field) + +proc initMessage*(message: var MessageObj) = + message.hasField = initIntSet() + message.unknownFields = @[] + +proc hasField*(message: Message, fieldNumber: int): bool = + contains(message.hasField, fieldNumber) + +proc hasFields*(message: Message, fieldNumbers: openArray[int]): bool = + for fieldNumber in fieldNumbers: + if contains(message.hasField, fieldNumber): + return true + +proc clearFields*(message: Message, fieldNumbers: openArray[int]) = + excl(message.hasField, fieldNumbers) + +proc setField*(message: Message, fieldNumber: int) = + incl(message.hasField, fieldNumber) -- cgit v1.2.3