blob: 5464dfb3561394c815c8f66ee2aeabcf0975531d [file] [log] [blame]
Brian Silverman9c614bc2016-02-15 20:20:02 -05001// Protocol Buffers - Google's data interchange format
2// Copyright 2008 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 "GPBArray.h"
34#import "GPBMessage.h"
35#import "GPBRuntimeTypes.h"
36
37CF_EXTERN_C_BEGIN
38
39NS_ASSUME_NONNULL_BEGIN
40
Austin Schuh40c16522018-10-28 20:27:54 -070041/**
42 * Generates a string that should be a valid "TextFormat" for the C++ version
43 * of Protocol Buffers.
44 *
45 * @param message The message to generate from.
46 * @param lineIndent A string to use as the prefix for all lines generated. Can
47 * be nil if no extra indent is needed.
48 *
49 * @return An NSString with the TextFormat of the message.
50 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -050051NSString *GPBTextFormatForMessage(GPBMessage *message,
52 NSString * __nullable lineIndent);
Austin Schuh40c16522018-10-28 20:27:54 -070053
54/**
55 * Generates a string that should be a valid "TextFormat" for the C++ version
56 * of Protocol Buffers.
57 *
58 * @param unknownSet The unknown field set to generate from.
59 * @param lineIndent A string to use as the prefix for all lines generated. Can
60 * be nil if no extra indent is needed.
61 *
62 * @return An NSString with the TextFormat of the unknown field set.
63 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -050064NSString *GPBTextFormatForUnknownFieldSet(GPBUnknownFieldSet * __nullable unknownSet,
65 NSString * __nullable lineIndent);
66
Austin Schuh40c16522018-10-28 20:27:54 -070067/**
68 * Checks if the given field number is set on a message.
69 *
70 * @param self The message to check.
71 * @param fieldNumber The field number to check.
72 *
73 * @return YES if the field number is set on the given message.
74 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -050075BOOL GPBMessageHasFieldNumberSet(GPBMessage *self, uint32_t fieldNumber);
Austin Schuh40c16522018-10-28 20:27:54 -070076
77/**
78 * Checks if the given field is set on a message.
79 *
80 * @param self The message to check.
81 * @param field The field to check.
82 *
83 * @return YES if the field is set on the given message.
84 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -050085BOOL GPBMessageHasFieldSet(GPBMessage *self, GPBFieldDescriptor *field);
86
Austin Schuh40c16522018-10-28 20:27:54 -070087/**
88 * Clears the given field for the given message.
89 *
90 * @param self The message for which to clear the field.
91 * @param field The field to clear.
92 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -050093void GPBClearMessageField(GPBMessage *self, GPBFieldDescriptor *field);
94
95//%PDDM-EXPAND GPB_ACCESSORS()
96// This block of code is generated, do not edit it directly.
97
98
99//
Austin Schuh40c16522018-10-28 20:27:54 -0700100// Get/Set a given field from/to a message.
Brian Silverman9c614bc2016-02-15 20:20:02 -0500101//
102
103// Single Fields
104
Austin Schuh40c16522018-10-28 20:27:54 -0700105/**
106 * Gets the value of a bytes field.
107 *
108 * @param self The message from which to get the field.
109 * @param field The field to get.
110 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500111NSData *GPBGetMessageBytesField(GPBMessage *self, GPBFieldDescriptor *field);
Austin Schuh40c16522018-10-28 20:27:54 -0700112
113/**
114 * Sets the value of a bytes field.
115 *
116 * @param self The message into which to set the field.
117 * @param field The field to set.
118 * @param value The to set in the field.
119 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500120void GPBSetMessageBytesField(GPBMessage *self, GPBFieldDescriptor *field, NSData *value);
121
Austin Schuh40c16522018-10-28 20:27:54 -0700122/**
123 * Gets the value of a string field.
124 *
125 * @param self The message from which to get the field.
126 * @param field The field to get.
127 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500128NSString *GPBGetMessageStringField(GPBMessage *self, GPBFieldDescriptor *field);
Austin Schuh40c16522018-10-28 20:27:54 -0700129
130/**
131 * Sets the value of a string field.
132 *
133 * @param self The message into which to set the field.
134 * @param field The field to set.
135 * @param value The to set in the field.
136 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500137void GPBSetMessageStringField(GPBMessage *self, GPBFieldDescriptor *field, NSString *value);
138
Austin Schuh40c16522018-10-28 20:27:54 -0700139/**
140 * Gets the value of a message field.
141 *
142 * @param self The message from which to get the field.
143 * @param field The field to get.
144 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500145GPBMessage *GPBGetMessageMessageField(GPBMessage *self, GPBFieldDescriptor *field);
Austin Schuh40c16522018-10-28 20:27:54 -0700146
147/**
148 * Sets the value of a message field.
149 *
150 * @param self The message into which to set the field.
151 * @param field The field to set.
152 * @param value The to set in the field.
153 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500154void GPBSetMessageMessageField(GPBMessage *self, GPBFieldDescriptor *field, GPBMessage *value);
155
Austin Schuh40c16522018-10-28 20:27:54 -0700156/**
157 * Gets the value of a group field.
158 *
159 * @param self The message from which to get the field.
160 * @param field The field to get.
161 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500162GPBMessage *GPBGetMessageGroupField(GPBMessage *self, GPBFieldDescriptor *field);
Austin Schuh40c16522018-10-28 20:27:54 -0700163
164/**
165 * Sets the value of a group field.
166 *
167 * @param self The message into which to set the field.
168 * @param field The field to set.
169 * @param value The to set in the field.
170 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500171void GPBSetMessageGroupField(GPBMessage *self, GPBFieldDescriptor *field, GPBMessage *value);
172
Austin Schuh40c16522018-10-28 20:27:54 -0700173/**
174 * Gets the value of a bool field.
175 *
176 * @param self The message from which to get the field.
177 * @param field The field to get.
178 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500179BOOL GPBGetMessageBoolField(GPBMessage *self, GPBFieldDescriptor *field);
Austin Schuh40c16522018-10-28 20:27:54 -0700180
181/**
182 * Sets the value of a bool field.
183 *
184 * @param self The message into which to set the field.
185 * @param field The field to set.
186 * @param value The to set in the field.
187 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500188void GPBSetMessageBoolField(GPBMessage *self, GPBFieldDescriptor *field, BOOL value);
189
Austin Schuh40c16522018-10-28 20:27:54 -0700190/**
191 * Gets the value of an int32 field.
192 *
193 * @param self The message from which to get the field.
194 * @param field The field to get.
195 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500196int32_t GPBGetMessageInt32Field(GPBMessage *self, GPBFieldDescriptor *field);
Austin Schuh40c16522018-10-28 20:27:54 -0700197
198/**
199 * Sets the value of an int32 field.
200 *
201 * @param self The message into which to set the field.
202 * @param field The field to set.
203 * @param value The to set in the field.
204 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500205void GPBSetMessageInt32Field(GPBMessage *self, GPBFieldDescriptor *field, int32_t value);
206
Austin Schuh40c16522018-10-28 20:27:54 -0700207/**
208 * Gets the value of an uint32 field.
209 *
210 * @param self The message from which to get the field.
211 * @param field The field to get.
212 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500213uint32_t GPBGetMessageUInt32Field(GPBMessage *self, GPBFieldDescriptor *field);
Austin Schuh40c16522018-10-28 20:27:54 -0700214
215/**
216 * Sets the value of an uint32 field.
217 *
218 * @param self The message into which to set the field.
219 * @param field The field to set.
220 * @param value The to set in the field.
221 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500222void GPBSetMessageUInt32Field(GPBMessage *self, GPBFieldDescriptor *field, uint32_t value);
223
Austin Schuh40c16522018-10-28 20:27:54 -0700224/**
225 * Gets the value of an int64 field.
226 *
227 * @param self The message from which to get the field.
228 * @param field The field to get.
229 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500230int64_t GPBGetMessageInt64Field(GPBMessage *self, GPBFieldDescriptor *field);
Austin Schuh40c16522018-10-28 20:27:54 -0700231
232/**
233 * Sets the value of an int64 field.
234 *
235 * @param self The message into which to set the field.
236 * @param field The field to set.
237 * @param value The to set in the field.
238 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500239void GPBSetMessageInt64Field(GPBMessage *self, GPBFieldDescriptor *field, int64_t value);
240
Austin Schuh40c16522018-10-28 20:27:54 -0700241/**
242 * Gets the value of an uint64 field.
243 *
244 * @param self The message from which to get the field.
245 * @param field The field to get.
246 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500247uint64_t GPBGetMessageUInt64Field(GPBMessage *self, GPBFieldDescriptor *field);
Austin Schuh40c16522018-10-28 20:27:54 -0700248
249/**
250 * Sets the value of an uint64 field.
251 *
252 * @param self The message into which to set the field.
253 * @param field The field to set.
254 * @param value The to set in the field.
255 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500256void GPBSetMessageUInt64Field(GPBMessage *self, GPBFieldDescriptor *field, uint64_t value);
257
Austin Schuh40c16522018-10-28 20:27:54 -0700258/**
259 * Gets the value of a float field.
260 *
261 * @param self The message from which to get the field.
262 * @param field The field to get.
263 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500264float GPBGetMessageFloatField(GPBMessage *self, GPBFieldDescriptor *field);
Austin Schuh40c16522018-10-28 20:27:54 -0700265
266/**
267 * Sets the value of a float field.
268 *
269 * @param self The message into which to set the field.
270 * @param field The field to set.
271 * @param value The to set in the field.
272 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500273void GPBSetMessageFloatField(GPBMessage *self, GPBFieldDescriptor *field, float value);
274
Austin Schuh40c16522018-10-28 20:27:54 -0700275/**
276 * Gets the value of a double field.
277 *
278 * @param self The message from which to get the field.
279 * @param field The field to get.
280 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500281double GPBGetMessageDoubleField(GPBMessage *self, GPBFieldDescriptor *field);
Austin Schuh40c16522018-10-28 20:27:54 -0700282
283/**
284 * Sets the value of a double field.
285 *
286 * @param self The message into which to set the field.
287 * @param field The field to set.
288 * @param value The to set in the field.
289 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500290void GPBSetMessageDoubleField(GPBMessage *self, GPBFieldDescriptor *field, double value);
291
Austin Schuh40c16522018-10-28 20:27:54 -0700292/**
293 * Gets the given enum field of a message. For proto3, if the value isn't a
294 * member of the enum, @c kGPBUnrecognizedEnumeratorValue will be returned.
295 * GPBGetMessageRawEnumField will bypass the check and return whatever value
296 * was set.
297 *
298 * @param self The message from which to get the field.
299 * @param field The field to get.
300 *
301 * @return The enum value for the given field.
302 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500303int32_t GPBGetMessageEnumField(GPBMessage *self, GPBFieldDescriptor *field);
Austin Schuh40c16522018-10-28 20:27:54 -0700304
305/**
306 * Set the given enum field of a message. You can only set values that are
307 * members of the enum.
308 *
309 * @param self The message into which to set the field.
310 * @param field The field to set.
311 * @param value The enum value to set in the field.
312 **/
313void GPBSetMessageEnumField(GPBMessage *self,
314 GPBFieldDescriptor *field,
315 int32_t value);
316
317/**
318 * Get the given enum field of a message. No check is done to ensure the value
319 * was defined in the enum.
320 *
321 * @param self The message from which to get the field.
322 * @param field The field to get.
323 *
324 * @return The raw enum value for the given field.
325 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500326int32_t GPBGetMessageRawEnumField(GPBMessage *self, GPBFieldDescriptor *field);
Austin Schuh40c16522018-10-28 20:27:54 -0700327
328/**
329 * Set the given enum field of a message. You can set the value to anything,
330 * even a value that is not a member of the enum.
331 *
332 * @param self The message into which to set the field.
333 * @param field The field to set.
334 * @param value The raw enum value to set in the field.
335 **/
336void GPBSetMessageRawEnumField(GPBMessage *self,
337 GPBFieldDescriptor *field,
338 int32_t value);
Brian Silverman9c614bc2016-02-15 20:20:02 -0500339
340// Repeated Fields
341
Austin Schuh40c16522018-10-28 20:27:54 -0700342/**
343 * Gets the value of a repeated field.
344 *
345 * @param self The message from which to get the field.
346 * @param field The repeated field to get.
347 *
348 * @return A GPB*Array or an NSMutableArray based on the field's type.
349 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500350id GPBGetMessageRepeatedField(GPBMessage *self, GPBFieldDescriptor *field);
Austin Schuh40c16522018-10-28 20:27:54 -0700351
352/**
353 * Sets the value of a repeated field.
354 *
355 * @param self The message into which to set the field.
356 * @param field The field to set.
357 * @param array A GPB*Array or NSMutableArray based on the field's type.
358 **/
359void GPBSetMessageRepeatedField(GPBMessage *self,
360 GPBFieldDescriptor *field,
361 id array);
Brian Silverman9c614bc2016-02-15 20:20:02 -0500362
363// Map Fields
364
Austin Schuh40c16522018-10-28 20:27:54 -0700365/**
366 * Gets the value of a map<> field.
367 *
368 * @param self The message from which to get the field.
369 * @param field The repeated field to get.
370 *
371 * @return A GPB*Dictionary or NSMutableDictionary based on the field's type.
372 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500373id GPBGetMessageMapField(GPBMessage *self, GPBFieldDescriptor *field);
Austin Schuh40c16522018-10-28 20:27:54 -0700374
375/**
376 * Sets the value of a map<> field.
377 *
378 * @param self The message into which to set the field.
379 * @param field The field to set.
380 * @param dictionary A GPB*Dictionary or NSMutableDictionary based on the
381 * field's type.
382 **/
383void GPBSetMessageMapField(GPBMessage *self,
384 GPBFieldDescriptor *field,
385 id dictionary);
Brian Silverman9c614bc2016-02-15 20:20:02 -0500386
387//%PDDM-EXPAND-END GPB_ACCESSORS()
388
Austin Schuh40c16522018-10-28 20:27:54 -0700389/**
390 * Returns an empty NSData to assign to byte fields when you wish to assign them
391 * to empty. Prevents allocating a lot of little [NSData data] objects.
392 **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500393NSData *GPBEmptyNSData(void) __attribute__((pure));
394
Austin Schuh40c16522018-10-28 20:27:54 -0700395/**
396 * Drops the `unknownFields` from the given message and from all sub message.
397 **/
398void GPBMessageDropUnknownFieldsRecursively(GPBMessage *message);
399
Brian Silverman9c614bc2016-02-15 20:20:02 -0500400NS_ASSUME_NONNULL_END
401
402CF_EXTERN_C_END
403
404
405//%PDDM-DEFINE GPB_ACCESSORS()
406//%
407//%//
Austin Schuh40c16522018-10-28 20:27:54 -0700408//%// Get/Set a given field from/to a message.
Brian Silverman9c614bc2016-02-15 20:20:02 -0500409//%//
410//%
411//%// Single Fields
412//%
Austin Schuh40c16522018-10-28 20:27:54 -0700413//%GPB_ACCESSOR_SINGLE_FULL(Bytes, NSData, , *)
414//%GPB_ACCESSOR_SINGLE_FULL(String, NSString, , *)
415//%GPB_ACCESSOR_SINGLE_FULL(Message, GPBMessage, , *)
416//%GPB_ACCESSOR_SINGLE_FULL(Group, GPBMessage, , *)
417//%GPB_ACCESSOR_SINGLE(Bool, BOOL, )
418//%GPB_ACCESSOR_SINGLE(Int32, int32_t, n)
419//%GPB_ACCESSOR_SINGLE(UInt32, uint32_t, n)
420//%GPB_ACCESSOR_SINGLE(Int64, int64_t, n)
421//%GPB_ACCESSOR_SINGLE(UInt64, uint64_t, n)
422//%GPB_ACCESSOR_SINGLE(Float, float, )
423//%GPB_ACCESSOR_SINGLE(Double, double, )
424//%/**
425//% * Gets the given enum field of a message. For proto3, if the value isn't a
426//% * member of the enum, @c kGPBUnrecognizedEnumeratorValue will be returned.
427//% * GPBGetMessageRawEnumField will bypass the check and return whatever value
428//% * was set.
429//% *
430//% * @param self The message from which to get the field.
431//% * @param field The field to get.
432//% *
433//% * @return The enum value for the given field.
434//% **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500435//%int32_t GPBGetMessageEnumField(GPBMessage *self, GPBFieldDescriptor *field);
Austin Schuh40c16522018-10-28 20:27:54 -0700436//%
437//%/**
438//% * Set the given enum field of a message. You can only set values that are
439//% * members of the enum.
440//% *
441//% * @param self The message into which to set the field.
442//% * @param field The field to set.
443//% * @param value The enum value to set in the field.
444//% **/
445//%void GPBSetMessageEnumField(GPBMessage *self,
446//% GPBFieldDescriptor *field,
447//% int32_t value);
448//%
449//%/**
450//% * Get the given enum field of a message. No check is done to ensure the value
451//% * was defined in the enum.
452//% *
453//% * @param self The message from which to get the field.
454//% * @param field The field to get.
455//% *
456//% * @return The raw enum value for the given field.
457//% **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500458//%int32_t GPBGetMessageRawEnumField(GPBMessage *self, GPBFieldDescriptor *field);
Austin Schuh40c16522018-10-28 20:27:54 -0700459//%
460//%/**
461//% * Set the given enum field of a message. You can set the value to anything,
462//% * even a value that is not a member of the enum.
463//% *
464//% * @param self The message into which to set the field.
465//% * @param field The field to set.
466//% * @param value The raw enum value to set in the field.
467//% **/
468//%void GPBSetMessageRawEnumField(GPBMessage *self,
469//% GPBFieldDescriptor *field,
470//% int32_t value);
Brian Silverman9c614bc2016-02-15 20:20:02 -0500471//%
472//%// Repeated Fields
473//%
Austin Schuh40c16522018-10-28 20:27:54 -0700474//%/**
475//% * Gets the value of a repeated field.
476//% *
477//% * @param self The message from which to get the field.
478//% * @param field The repeated field to get.
479//% *
480//% * @return A GPB*Array or an NSMutableArray based on the field's type.
481//% **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500482//%id GPBGetMessageRepeatedField(GPBMessage *self, GPBFieldDescriptor *field);
Austin Schuh40c16522018-10-28 20:27:54 -0700483//%
484//%/**
485//% * Sets the value of a repeated field.
486//% *
487//% * @param self The message into which to set the field.
488//% * @param field The field to set.
489//% * @param array A GPB*Array or NSMutableArray based on the field's type.
490//% **/
491//%void GPBSetMessageRepeatedField(GPBMessage *self,
492//% GPBFieldDescriptor *field,
493//% id array);
Brian Silverman9c614bc2016-02-15 20:20:02 -0500494//%
495//%// Map Fields
496//%
Austin Schuh40c16522018-10-28 20:27:54 -0700497//%/**
498//% * Gets the value of a map<> field.
499//% *
500//% * @param self The message from which to get the field.
501//% * @param field The repeated field to get.
502//% *
503//% * @return A GPB*Dictionary or NSMutableDictionary based on the field's type.
504//% **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500505//%id GPBGetMessageMapField(GPBMessage *self, GPBFieldDescriptor *field);
Austin Schuh40c16522018-10-28 20:27:54 -0700506//%
507//%/**
508//% * Sets the value of a map<> field.
509//% *
510//% * @param self The message into which to set the field.
511//% * @param field The field to set.
512//% * @param dictionary A GPB*Dictionary or NSMutableDictionary based on the
513//% * field's type.
514//% **/
515//%void GPBSetMessageMapField(GPBMessage *self,
516//% GPBFieldDescriptor *field,
517//% id dictionary);
Brian Silverman9c614bc2016-02-15 20:20:02 -0500518//%
519
Austin Schuh40c16522018-10-28 20:27:54 -0700520//%PDDM-DEFINE GPB_ACCESSOR_SINGLE(NAME, TYPE, AN)
521//%GPB_ACCESSOR_SINGLE_FULL(NAME, TYPE, AN, )
522//%PDDM-DEFINE GPB_ACCESSOR_SINGLE_FULL(NAME, TYPE, AN, TisP)
523//%/**
524//% * Gets the value of a##AN NAME$L field.
525//% *
526//% * @param self The message from which to get the field.
527//% * @param field The field to get.
528//% **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500529//%TYPE TisP##GPBGetMessage##NAME##Field(GPBMessage *self, GPBFieldDescriptor *field);
Austin Schuh40c16522018-10-28 20:27:54 -0700530//%
531//%/**
532//% * Sets the value of a##AN NAME$L field.
533//% *
534//% * @param self The message into which to set the field.
535//% * @param field The field to set.
536//% * @param value The to set in the field.
537//% **/
Brian Silverman9c614bc2016-02-15 20:20:02 -0500538//%void GPBSetMessage##NAME##Field(GPBMessage *self, GPBFieldDescriptor *field, TYPE TisP##value);
539//%