1 // Protocol Buffers - Google's data interchange format 2 // Copyright 2015 Google Inc. All rights reserved. 3 // https://developers.google.com/protocol-buffers/ 4 // 5 // Redistribution and use in source and binary forms, with or without 6 // modification, are permitted provided that the following conditions are 7 // met: 8 // 9 // * Redistributions of source code must retain the above copyright 10 // notice, this list of conditions and the following disclaimer. 11 // * Redistributions in binary form must reproduce the above 12 // copyright notice, this list of conditions and the following disclaimer 13 // in the documentation and/or other materials provided with the 14 // distribution. 15 // * Neither the name of Google Inc. nor the names of its 16 // contributors may be used to endorse or promote products derived from 17 // this software without specific prior written permission. 18 // 19 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 31 #import <Foundation/Foundation.h> 32 33 #import "GPBRuntimeTypes.h" 34 35 // These classes are used for repeated fields of basic data types. They are used because 36 // they perform better than boxing into NSNumbers in NSArrays. 37 38 // Note: These are not meant to be subclassed. 39 40 NS_ASSUME_NONNULL_BEGIN 41 42 //%PDDM-EXPAND DECLARE_ARRAYS() 43 // This block of code is generated, do not edit it directly. 44 45 #pragma mark - Int32 46 47 @interface GPBInt32Array : NSObject <NSCopying> 48 49 @property(nonatomic, readonly) NSUInteger count; 50 51 + (instancetype)array; 52 + (instancetype)arrayWithValue:(int32_t)value; 53 + (instancetype)arrayWithValueArray:(GPBInt32Array *)array; 54 + (instancetype)arrayWithCapacity:(NSUInteger)count; 55 56 - (instancetype)init NS_DESIGNATED_INITIALIZER; 57 // Initializes the array, copying the values. 58 - (instancetype)initWithValues:(const int32_t [])values 59 count:(NSUInteger)count; 60 - (instancetype)initWithValueArray:(GPBInt32Array *)array; 61 - (instancetype)initWithCapacity:(NSUInteger)count; 62 63 - (int32_t)valueAtIndex:(NSUInteger)index; 64 65 - (void)enumerateValuesWithBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block; 66 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts 67 usingBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block; 68 69 - (void)addValue:(int32_t)value; 70 - (void)addValues:(const int32_t [])values count:(NSUInteger)count; 71 - (void)addValuesFromArray:(GPBInt32Array *)array; 72 73 - (void)insertValue:(int32_t)value atIndex:(NSUInteger)index; 74 75 - (void)replaceValueAtIndex:(NSUInteger)index withValue:(int32_t)value; 76 77 - (void)removeValueAtIndex:(NSUInteger)index; 78 - (void)removeAll; 79 80 - (void)exchangeValueAtIndex:(NSUInteger)idx1 81 withValueAtIndex:(NSUInteger)idx2; 82 83 @end 84 85 #pragma mark - UInt32 86 87 @interface GPBUInt32Array : NSObject <NSCopying> 88 89 @property(nonatomic, readonly) NSUInteger count; 90 91 + (instancetype)array; 92 + (instancetype)arrayWithValue:(uint32_t)value; 93 + (instancetype)arrayWithValueArray:(GPBUInt32Array *)array; 94 + (instancetype)arrayWithCapacity:(NSUInteger)count; 95 96 - (instancetype)init NS_DESIGNATED_INITIALIZER; 97 // Initializes the array, copying the values. 98 - (instancetype)initWithValues:(const uint32_t [])values 99 count:(NSUInteger)count; 100 - (instancetype)initWithValueArray:(GPBUInt32Array *)array; 101 - (instancetype)initWithCapacity:(NSUInteger)count; 102 103 - (uint32_t)valueAtIndex:(NSUInteger)index; 104 105 - (void)enumerateValuesWithBlock:(void (^)(uint32_t value, NSUInteger idx, BOOL *stop))block; 106 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts 107 usingBlock:(void (^)(uint32_t value, NSUInteger idx, BOOL *stop))block; 108 109 - (void)addValue:(uint32_t)value; 110 - (void)addValues:(const uint32_t [])values count:(NSUInteger)count; 111 - (void)addValuesFromArray:(GPBUInt32Array *)array; 112 113 - (void)insertValue:(uint32_t)value atIndex:(NSUInteger)index; 114 115 - (void)replaceValueAtIndex:(NSUInteger)index withValue:(uint32_t)value; 116 117 - (void)removeValueAtIndex:(NSUInteger)index; 118 - (void)removeAll; 119 120 - (void)exchangeValueAtIndex:(NSUInteger)idx1 121 withValueAtIndex:(NSUInteger)idx2; 122 123 @end 124 125 #pragma mark - Int64 126 127 @interface GPBInt64Array : NSObject <NSCopying> 128 129 @property(nonatomic, readonly) NSUInteger count; 130 131 + (instancetype)array; 132 + (instancetype)arrayWithValue:(int64_t)value; 133 + (instancetype)arrayWithValueArray:(GPBInt64Array *)array; 134 + (instancetype)arrayWithCapacity:(NSUInteger)count; 135 136 - (instancetype)init NS_DESIGNATED_INITIALIZER; 137 // Initializes the array, copying the values. 138 - (instancetype)initWithValues:(const int64_t [])values 139 count:(NSUInteger)count; 140 - (instancetype)initWithValueArray:(GPBInt64Array *)array; 141 - (instancetype)initWithCapacity:(NSUInteger)count; 142 143 - (int64_t)valueAtIndex:(NSUInteger)index; 144 145 - (void)enumerateValuesWithBlock:(void (^)(int64_t value, NSUInteger idx, BOOL *stop))block; 146 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts 147 usingBlock:(void (^)(int64_t value, NSUInteger idx, BOOL *stop))block; 148 149 - (void)addValue:(int64_t)value; 150 - (void)addValues:(const int64_t [])values count:(NSUInteger)count; 151 - (void)addValuesFromArray:(GPBInt64Array *)array; 152 153 - (void)insertValue:(int64_t)value atIndex:(NSUInteger)index; 154 155 - (void)replaceValueAtIndex:(NSUInteger)index withValue:(int64_t)value; 156 157 - (void)removeValueAtIndex:(NSUInteger)index; 158 - (void)removeAll; 159 160 - (void)exchangeValueAtIndex:(NSUInteger)idx1 161 withValueAtIndex:(NSUInteger)idx2; 162 163 @end 164 165 #pragma mark - UInt64 166 167 @interface GPBUInt64Array : NSObject <NSCopying> 168 169 @property(nonatomic, readonly) NSUInteger count; 170 171 + (instancetype)array; 172 + (instancetype)arrayWithValue:(uint64_t)value; 173 + (instancetype)arrayWithValueArray:(GPBUInt64Array *)array; 174 + (instancetype)arrayWithCapacity:(NSUInteger)count; 175 176 - (instancetype)init NS_DESIGNATED_INITIALIZER; 177 // Initializes the array, copying the values. 178 - (instancetype)initWithValues:(const uint64_t [])values 179 count:(NSUInteger)count; 180 - (instancetype)initWithValueArray:(GPBUInt64Array *)array; 181 - (instancetype)initWithCapacity:(NSUInteger)count; 182 183 - (uint64_t)valueAtIndex:(NSUInteger)index; 184 185 - (void)enumerateValuesWithBlock:(void (^)(uint64_t value, NSUInteger idx, BOOL *stop))block; 186 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts 187 usingBlock:(void (^)(uint64_t value, NSUInteger idx, BOOL *stop))block; 188 189 - (void)addValue:(uint64_t)value; 190 - (void)addValues:(const uint64_t [])values count:(NSUInteger)count; 191 - (void)addValuesFromArray:(GPBUInt64Array *)array; 192 193 - (void)insertValue:(uint64_t)value atIndex:(NSUInteger)index; 194 195 - (void)replaceValueAtIndex:(NSUInteger)index withValue:(uint64_t)value; 196 197 - (void)removeValueAtIndex:(NSUInteger)index; 198 - (void)removeAll; 199 200 - (void)exchangeValueAtIndex:(NSUInteger)idx1 201 withValueAtIndex:(NSUInteger)idx2; 202 203 @end 204 205 #pragma mark - Float 206 207 @interface GPBFloatArray : NSObject <NSCopying> 208 209 @property(nonatomic, readonly) NSUInteger count; 210 211 + (instancetype)array; 212 + (instancetype)arrayWithValue:(float)value; 213 + (instancetype)arrayWithValueArray:(GPBFloatArray *)array; 214 + (instancetype)arrayWithCapacity:(NSUInteger)count; 215 216 - (instancetype)init NS_DESIGNATED_INITIALIZER; 217 // Initializes the array, copying the values. 218 - (instancetype)initWithValues:(const float [])values 219 count:(NSUInteger)count; 220 - (instancetype)initWithValueArray:(GPBFloatArray *)array; 221 - (instancetype)initWithCapacity:(NSUInteger)count; 222 223 - (float)valueAtIndex:(NSUInteger)index; 224 225 - (void)enumerateValuesWithBlock:(void (^)(float value, NSUInteger idx, BOOL *stop))block; 226 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts 227 usingBlock:(void (^)(float value, NSUInteger idx, BOOL *stop))block; 228 229 - (void)addValue:(float)value; 230 - (void)addValues:(const float [])values count:(NSUInteger)count; 231 - (void)addValuesFromArray:(GPBFloatArray *)array; 232 233 - (void)insertValue:(float)value atIndex:(NSUInteger)index; 234 235 - (void)replaceValueAtIndex:(NSUInteger)index withValue:(float)value; 236 237 - (void)removeValueAtIndex:(NSUInteger)index; 238 - (void)removeAll; 239 240 - (void)exchangeValueAtIndex:(NSUInteger)idx1 241 withValueAtIndex:(NSUInteger)idx2; 242 243 @end 244 245 #pragma mark - Double 246 247 @interface GPBDoubleArray : NSObject <NSCopying> 248 249 @property(nonatomic, readonly) NSUInteger count; 250 251 + (instancetype)array; 252 + (instancetype)arrayWithValue:(double)value; 253 + (instancetype)arrayWithValueArray:(GPBDoubleArray *)array; 254 + (instancetype)arrayWithCapacity:(NSUInteger)count; 255 256 - (instancetype)init NS_DESIGNATED_INITIALIZER; 257 // Initializes the array, copying the values. 258 - (instancetype)initWithValues:(const double [])values 259 count:(NSUInteger)count; 260 - (instancetype)initWithValueArray:(GPBDoubleArray *)array; 261 - (instancetype)initWithCapacity:(NSUInteger)count; 262 263 - (double)valueAtIndex:(NSUInteger)index; 264 265 - (void)enumerateValuesWithBlock:(void (^)(double value, NSUInteger idx, BOOL *stop))block; 266 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts 267 usingBlock:(void (^)(double value, NSUInteger idx, BOOL *stop))block; 268 269 - (void)addValue:(double)value; 270 - (void)addValues:(const double [])values count:(NSUInteger)count; 271 - (void)addValuesFromArray:(GPBDoubleArray *)array; 272 273 - (void)insertValue:(double)value atIndex:(NSUInteger)index; 274 275 - (void)replaceValueAtIndex:(NSUInteger)index withValue:(double)value; 276 277 - (void)removeValueAtIndex:(NSUInteger)index; 278 - (void)removeAll; 279 280 - (void)exchangeValueAtIndex:(NSUInteger)idx1 281 withValueAtIndex:(NSUInteger)idx2; 282 283 @end 284 285 #pragma mark - Bool 286 287 @interface GPBBoolArray : NSObject <NSCopying> 288 289 @property(nonatomic, readonly) NSUInteger count; 290 291 + (instancetype)array; 292 + (instancetype)arrayWithValue:(BOOL)value; 293 + (instancetype)arrayWithValueArray:(GPBBoolArray *)array; 294 + (instancetype)arrayWithCapacity:(NSUInteger)count; 295 296 - (instancetype)init NS_DESIGNATED_INITIALIZER; 297 // Initializes the array, copying the values. 298 - (instancetype)initWithValues:(const BOOL [])values 299 count:(NSUInteger)count; 300 - (instancetype)initWithValueArray:(GPBBoolArray *)array; 301 - (instancetype)initWithCapacity:(NSUInteger)count; 302 303 - (BOOL)valueAtIndex:(NSUInteger)index; 304 305 - (void)enumerateValuesWithBlock:(void (^)(BOOL value, NSUInteger idx, BOOL *stop))block; 306 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts 307 usingBlock:(void (^)(BOOL value, NSUInteger idx, BOOL *stop))block; 308 309 - (void)addValue:(BOOL)value; 310 - (void)addValues:(const BOOL [])values count:(NSUInteger)count; 311 - (void)addValuesFromArray:(GPBBoolArray *)array; 312 313 - (void)insertValue:(BOOL)value atIndex:(NSUInteger)index; 314 315 - (void)replaceValueAtIndex:(NSUInteger)index withValue:(BOOL)value; 316 317 - (void)removeValueAtIndex:(NSUInteger)index; 318 - (void)removeAll; 319 320 - (void)exchangeValueAtIndex:(NSUInteger)idx1 321 withValueAtIndex:(NSUInteger)idx2; 322 323 @end 324 325 #pragma mark - Enum 326 327 @interface GPBEnumArray : NSObject <NSCopying> 328 329 @property(nonatomic, readonly) NSUInteger count; 330 @property(nonatomic, readonly) GPBEnumValidationFunc validationFunc; 331 332 + (instancetype)array; 333 + (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)func; 334 + (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)func 335 rawValue:(int32_t)value; 336 + (instancetype)arrayWithValueArray:(GPBEnumArray *)array; 337 + (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)func 338 capacity:(NSUInteger)count; 339 340 - (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func 341 NS_DESIGNATED_INITIALIZER; 342 343 // Initializes the array, copying the values. 344 - (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func 345 rawValues:(const int32_t [])values 346 count:(NSUInteger)count; 347 - (instancetype)initWithValueArray:(GPBEnumArray *)array; 348 - (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func 349 capacity:(NSUInteger)count; 350 351 // These will return kGPBUnrecognizedEnumeratorValue if the value at index is not a 352 // valid enumerator as defined by validationFunc. If the actual value is 353 // desired, use "raw" version of the method. 354 355 - (int32_t)valueAtIndex:(NSUInteger)index; 356 357 - (void)enumerateValuesWithBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block; 358 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts 359 usingBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block; 360 361 // These methods bypass the validationFunc to provide access to values that were not 362 // known at the time the binary was compiled. 363 364 - (int32_t)rawValueAtIndex:(NSUInteger)index; 365 366 - (void)enumerateRawValuesWithBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block; 367 - (void)enumerateRawValuesWithOptions:(NSEnumerationOptions)opts 368 usingBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block; 369 370 // If value is not a valid enumerator as defined by validationFunc, these 371 // methods will assert in debug, and will log in release and assign the value 372 // to the default value. Use the rawValue methods below to assign non enumerator 373 // values. 374 375 - (void)addValue:(int32_t)value; 376 - (void)addValues:(const int32_t [])values count:(NSUInteger)count; 377 378 - (void)insertValue:(int32_t)value atIndex:(NSUInteger)index; 379 380 - (void)replaceValueAtIndex:(NSUInteger)index withValue:(int32_t)value; 381 382 // These methods bypass the validationFunc to provide setting of values that were not 383 // known at the time the binary was compiled. 384 385 - (void)addRawValue:(int32_t)value; 386 - (void)addRawValuesFromArray:(GPBEnumArray *)array; 387 - (void)addRawValues:(const int32_t [])values count:(NSUInteger)count; 388 389 - (void)insertRawValue:(int32_t)value atIndex:(NSUInteger)index; 390 391 - (void)replaceValueAtIndex:(NSUInteger)index withRawValue:(int32_t)value; 392 393 // No validation applies to these methods. 394 395 - (void)removeValueAtIndex:(NSUInteger)index; 396 - (void)removeAll; 397 398 - (void)exchangeValueAtIndex:(NSUInteger)idx1 399 withValueAtIndex:(NSUInteger)idx2; 400 401 @end 402 403 //%PDDM-EXPAND-END DECLARE_ARRAYS() 404 405 NS_ASSUME_NONNULL_END 406 407 //%PDDM-DEFINE DECLARE_ARRAYS() 408 //%ARRAY_INTERFACE_SIMPLE(Int32, int32_t) 409 //%ARRAY_INTERFACE_SIMPLE(UInt32, uint32_t) 410 //%ARRAY_INTERFACE_SIMPLE(Int64, int64_t) 411 //%ARRAY_INTERFACE_SIMPLE(UInt64, uint64_t) 412 //%ARRAY_INTERFACE_SIMPLE(Float, float) 413 //%ARRAY_INTERFACE_SIMPLE(Double, double) 414 //%ARRAY_INTERFACE_SIMPLE(Bool, BOOL) 415 //%ARRAY_INTERFACE_ENUM(Enum, int32_t) 416 417 // 418 // The common case (everything but Enum) 419 // 420 421 //%PDDM-DEFINE ARRAY_INTERFACE_SIMPLE(NAME, TYPE) 422 //%#pragma mark - NAME 423 //% 424 //%@interface GPB##NAME##Array : NSObject <NSCopying> 425 //% 426 //%@property(nonatomic, readonly) NSUInteger count; 427 //% 428 //%+ (instancetype)array; 429 //%+ (instancetype)arrayWithValue:(TYPE)value; 430 //%+ (instancetype)arrayWithValueArray:(GPB##NAME##Array *)array; 431 //%+ (instancetype)arrayWithCapacity:(NSUInteger)count; 432 //% 433 //%- (instancetype)init NS_DESIGNATED_INITIALIZER; 434 //%// Initializes the array, copying the values. 435 //%- (instancetype)initWithValues:(const TYPE [])values 436 //% count:(NSUInteger)count; 437 //%- (instancetype)initWithValueArray:(GPB##NAME##Array *)array; 438 //%- (instancetype)initWithCapacity:(NSUInteger)count; 439 //% 440 //%ARRAY_IMMUTABLE_INTERFACE(NAME, TYPE, Basic) 441 //% 442 //%ARRAY_MUTABLE_INTERFACE(NAME, TYPE, Basic) 443 //% 444 //%@end 445 //% 446 447 // 448 // Macros specific to Enums (to tweak their interface). 449 // 450 451 //%PDDM-DEFINE ARRAY_INTERFACE_ENUM(NAME, TYPE) 452 //%#pragma mark - NAME 453 //% 454 //%@interface GPB##NAME##Array : NSObject <NSCopying> 455 //% 456 //%@property(nonatomic, readonly) NSUInteger count; 457 //%@property(nonatomic, readonly) GPBEnumValidationFunc validationFunc; 458 //% 459 //%+ (instancetype)array; 460 //%+ (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)func; 461 //%+ (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)func 462 //% rawValue:(TYPE)value; 463 //%+ (instancetype)arrayWithValueArray:(GPB##NAME##Array *)array; 464 //%+ (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)func 465 //% capacity:(NSUInteger)count; 466 //% 467 //%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func 468 //% NS_DESIGNATED_INITIALIZER; 469 //% 470 //%// Initializes the array, copying the values. 471 //%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func 472 //% rawValues:(const TYPE [])values 473 //% count:(NSUInteger)count; 474 //%- (instancetype)initWithValueArray:(GPB##NAME##Array *)array; 475 //%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func 476 //% capacity:(NSUInteger)count; 477 //% 478 //%// These will return kGPBUnrecognizedEnumeratorValue if the value at index is not a 479 //%// valid enumerator as defined by validationFunc. If the actual value is 480 //%// desired, use "raw" version of the method. 481 //% 482 //%ARRAY_IMMUTABLE_INTERFACE(NAME, TYPE, NAME) 483 //% 484 //%// These methods bypass the validationFunc to provide access to values that were not 485 //%// known at the time the binary was compiled. 486 //% 487 //%- (TYPE)rawValueAtIndex:(NSUInteger)index; 488 //% 489 //%- (void)enumerateRawValuesWithBlock:(void (^)(TYPE value, NSUInteger idx, BOOL *stop))block; 490 //%- (void)enumerateRawValuesWithOptions:(NSEnumerationOptions)opts 491 //% usingBlock:(void (^)(TYPE value, NSUInteger idx, BOOL *stop))block; 492 //% 493 //%// If value is not a valid enumerator as defined by validationFunc, these 494 //%// methods will assert in debug, and will log in release and assign the value 495 //%// to the default value. Use the rawValue methods below to assign non enumerator 496 //%// values. 497 //% 498 //%ARRAY_MUTABLE_INTERFACE(NAME, TYPE, NAME) 499 //% 500 //%@end 501 //% 502 503 //%PDDM-DEFINE ARRAY_IMMUTABLE_INTERFACE(NAME, TYPE, HELPER_NAME) 504 //%- (TYPE)valueAtIndex:(NSUInteger)index; 505 //% 506 //%- (void)enumerateValuesWithBlock:(void (^)(TYPE value, NSUInteger idx, BOOL *stop))block; 507 //%- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts 508 //% usingBlock:(void (^)(TYPE value, NSUInteger idx, BOOL *stop))block; 509 510 //%PDDM-DEFINE ARRAY_MUTABLE_INTERFACE(NAME, TYPE, HELPER_NAME) 511 //%- (void)addValue:(TYPE)value; 512 //%- (void)addValues:(const TYPE [])values count:(NSUInteger)count; 513 //%ARRAY_EXTRA_MUTABLE_METHODS1_##HELPER_NAME(NAME, TYPE) 514 //%- (void)insertValue:(TYPE)value atIndex:(NSUInteger)index; 515 //% 516 //%- (void)replaceValueAtIndex:(NSUInteger)index withValue:(TYPE)value; 517 //%ARRAY_EXTRA_MUTABLE_METHODS2_##HELPER_NAME(NAME, TYPE) 518 //%- (void)removeValueAtIndex:(NSUInteger)index; 519 //%- (void)removeAll; 520 //% 521 //%- (void)exchangeValueAtIndex:(NSUInteger)idx1 522 //% withValueAtIndex:(NSUInteger)idx2; 523 524 // 525 // These are hooks invoked by the above to do insert as needed. 526 // 527 528 //%PDDM-DEFINE ARRAY_EXTRA_MUTABLE_METHODS1_Basic(NAME, TYPE) 529 //%- (void)addValuesFromArray:(GPB##NAME##Array *)array; 530 //% 531 //%PDDM-DEFINE ARRAY_EXTRA_MUTABLE_METHODS2_Basic(NAME, TYPE) 532 // Empty 533 //%PDDM-DEFINE ARRAY_EXTRA_MUTABLE_METHODS1_Enum(NAME, TYPE) 534 // Empty 535 //%PDDM-DEFINE ARRAY_EXTRA_MUTABLE_METHODS2_Enum(NAME, TYPE) 536 //% 537 //%// These methods bypass the validationFunc to provide setting of values that were not 538 //%// known at the time the binary was compiled. 539 //% 540 //%- (void)addRawValue:(TYPE)value; 541 //%- (void)addRawValuesFromArray:(GPB##NAME##Array *)array; 542 //%- (void)addRawValues:(const TYPE [])values count:(NSUInteger)count; 543 //% 544 //%- (void)insertRawValue:(TYPE)value atIndex:(NSUInteger)index; 545 //% 546 //%- (void)replaceValueAtIndex:(NSUInteger)index withRawValue:(TYPE)value; 547 //% 548 //%// No validation applies to these methods. 549 //% 550