| // Protocol Buffers - Google's data interchange format | |
| // Copyright 2008 Google Inc. All rights reserved. | |
| // | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file or at | |
| // https://developers.google.com/open-source/licenses/bsd | |
| #import <Foundation/Foundation.h> | |
| #import "GPBArray.h" | |
| #import "GPBUnknownFields.h" | |
| @class GPBUnknownFields; | |
| NS_ASSUME_NONNULL_BEGIN | |
| typedef NS_ENUM(uint8_t, GPBUnknownFieldType) { | |
| GPBUnknownFieldTypeVarint, | |
| GPBUnknownFieldTypeFixed32, | |
| GPBUnknownFieldTypeFixed64, | |
| GPBUnknownFieldTypeLengthDelimited, // Length prefixed | |
| GPBUnknownFieldTypeGroup, // Tag delimited | |
| }; | |
| /** | |
| * Store an unknown field. These are used in conjunction with GPBUnknownFields. | |
| **/ | |
| __attribute__((objc_subclassing_restricted)) | |
| @interface GPBUnknownField : NSObject<NSCopying> | |
| /** The field number the data is stored under. */ | |
| @property(nonatomic, readonly, assign) int32_t number; | |
| /** The type of the field. */ | |
| @property(nonatomic, readonly, assign) GPBUnknownFieldType type; | |
| /** | |
| * Fetch the varint value. | |
| * | |
| * It is a programming error to call this when the `type` is not a varint. | |
| */ | |
| @property(nonatomic, readonly, assign) uint64_t varint; | |
| /** | |
| * Fetch the fixed32 value. | |
| * | |
| * It is a programming error to call this when the `type` is not a fixed32. | |
| */ | |
| @property(nonatomic, readonly, assign) uint32_t fixed32; | |
| /** | |
| * Fetch the fixed64 value. | |
| * | |
| * It is a programming error to call this when the `type` is not a fixed64. | |
| */ | |
| @property(nonatomic, readonly, assign) uint64_t fixed64; | |
| /** | |
| * Fetch the length delimited (length prefixed) value. | |
| * | |
| * It is a programming error to call this when the `type` is not a length | |
| * delimited. | |
| */ | |
| @property(nonatomic, readonly, strong, nonnull) NSData *lengthDelimited; | |
| /** | |
| * Fetch the group (tag delimited) value. | |
| * | |
| * It is a programming error to call this when the `type` is not a group. | |
| */ | |
| @property(nonatomic, readonly, strong, nonnull) GPBUnknownFields *group; | |
| @end | |
| NS_ASSUME_NONNULL_END |