// 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 #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 /** 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