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