1 // Protocol Buffers - Google's data interchange format 2 // Copyright 2008 Google Inc. All rights reserved. 3 // 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file or at 6 // https://developers.google.com/open-source/licenses/bsd 7 8 #import <Foundation/Foundation.h> 9 10 #import "GPBUnknownField.h" 11 12 #import "GPBArray.h" 13 14 @class GPBCodedOutputStream; 15 GPBUnknownField()16@interface GPBUnknownField () { 17 @package 18 int32_t number_; 19 GPBUnknownFieldType type_; 20 21 union { 22 uint64_t intValue; // type == Varint, Fixed32, Fixed64 23 NSData *_Nonnull lengthDelimited; // type == LengthDelimited 24 GPBUnknownFields *_Nonnull group; // type == Group 25 struct { // type == Legacy 26 GPBUInt64Array *_Null_unspecified mutableVarintList; 27 GPBUInt32Array *_Null_unspecified mutableFixed32List; 28 GPBUInt64Array *_Null_unspecified mutableFixed64List; 29 NSMutableArray<NSData *> *_Null_unspecified mutableLengthDelimitedList; 30 #pragma clang diagnostic push 31 #pragma clang diagnostic ignored "-Wdeprecated-declarations" 32 NSMutableArray<GPBUnknownFieldSet *> *_Null_unspecified mutableGroupList; 33 #pragma clang diagnostic pop 34 } legacy; 35 } storage_; 36 } 37 38 - (nonnull instancetype)initWithNumber:(int32_t)number varint:(uint64_t)varint; 39 - (nonnull instancetype)initWithNumber:(int32_t)number fixed32:(uint32_t)fixed32; 40 - (nonnull instancetype)initWithNumber:(int32_t)number fixed64:(uint64_t)fixed64; 41 - (nonnull instancetype)initWithNumber:(int32_t)number lengthDelimited:(nonnull NSData *)data; 42 - (nonnull instancetype)initWithNumber:(int32_t)number group:(nonnull GPBUnknownFields *)group; 43 44 - (void)writeToOutput:(nonnull GPBCodedOutputStream *)output; 45 - (size_t)serializedSize; 46 47 - (void)writeAsMessageSetExtensionToOutput:(nonnull GPBCodedOutputStream *)output; 48 - (size_t)serializedSizeAsMessageSetExtension; 49 50 - (void)mergeFromField:(nonnull GPBUnknownField *)other; 51 52 @end 53