blob: 6592c1dde1ae604fe9aa7b7e7c8e342fdb8ec113 [file] [log] [blame]
csharptest2b868842011-06-10 14:41:47 -05001using System;
2using System.Collections;
csharptest74c5e0c2011-07-14 13:06:22 -05003using System.Collections.Generic;
csharptest2b868842011-06-10 14:41:47 -05004using System.Globalization;
5using Google.ProtocolBuffers.Descriptors;
6
7//Disable CS3011: only CLS-compliant members can be abstract
8#pragma warning disable 3011
9
10namespace Google.ProtocolBuffers.Serialization
11{
12 /// <summary>
13 /// Provides a base class for writers that performs some basic type dispatching
14 /// </summary>
15 public abstract class AbstractWriter : ICodedOutputStream, IDisposable
16 {
17 /// <summary>
18 /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
19 /// </summary>
20 public void Dispose()
21 {
22 GC.SuppressFinalize(this);
23 Flush();
24 Dispose(true);
25 }
26
27 /// <summary>
28 /// Completes any pending write operations
29 /// </summary>
30 public virtual void Flush()
csharptest74c5e0c2011-07-14 13:06:22 -050031 {
32 }
csharptest2b868842011-06-10 14:41:47 -050033
34 /// <summary>
35 /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
36 /// </summary>
37 protected virtual void Dispose(bool disposing)
38 {
39 }
40
41 /// <summary>
42 /// Writes the message to the the formatted stream.
43 /// </summary>
44 public abstract void WriteMessage(IMessageLite message);
45
46 /// <summary>
csharptest2b868842011-06-10 14:41:47 -050047 /// Writes a Boolean value
48 /// </summary>
49 protected abstract void Write(string field, Boolean value);
50
51 /// <summary>
52 /// Writes a Int32 value
53 /// </summary>
54 protected abstract void Write(string field, Int32 value);
55
56 /// <summary>
57 /// Writes a UInt32 value
58 /// </summary>
59 [CLSCompliant(false)]
60 protected abstract void Write(string field, UInt32 value);
61
62 /// <summary>
63 /// Writes a Int64 value
64 /// </summary>
65 protected abstract void Write(string field, Int64 value);
66
67 /// <summary>
68 /// Writes a UInt64 value
69 /// </summary>
70 [CLSCompliant(false)]
71 protected abstract void Write(string field, UInt64 value);
72
73 /// <summary>
74 /// Writes a Single value
75 /// </summary>
76 protected abstract void Write(string field, Single value);
77
78 /// <summary>
79 /// Writes a Double value
80 /// </summary>
81 protected abstract void Write(string field, Double value);
82
83 /// <summary>
84 /// Writes a String value
85 /// </summary>
86 protected abstract void Write(string field, String value);
87
88 /// <summary>
89 /// Writes a set of bytes
90 /// </summary>
91 protected abstract void Write(string field, ByteString value);
92
93 /// <summary>
94 /// Writes a message or group as a field
95 /// </summary>
96 protected abstract void WriteMessageOrGroup(string field, IMessageLite message);
97
98 /// <summary>
99 /// Writes a System.Enum by the numeric and textual value
100 /// </summary>
101 protected abstract void WriteEnum(string field, int number, string name);
102
103 /// <summary>
104 /// Writes a field of the type determined by field.FieldType
105 /// </summary>
106 protected virtual void WriteField(FieldType fieldType, string field, object value)
107 {
108 switch (fieldType)
109 {
csharptest74c5e0c2011-07-14 13:06:22 -0500110 case FieldType.Bool:
111 Write(field, (bool) value);
112 break;
csharptest2b868842011-06-10 14:41:47 -0500113 case FieldType.Int64:
114 case FieldType.SInt64:
csharptest74c5e0c2011-07-14 13:06:22 -0500115 case FieldType.SFixed64:
116 Write(field, (long) value);
117 break;
csharptest2b868842011-06-10 14:41:47 -0500118 case FieldType.UInt64:
csharptest74c5e0c2011-07-14 13:06:22 -0500119 case FieldType.Fixed64:
120 Write(field, (ulong) value);
121 break;
csharptest2b868842011-06-10 14:41:47 -0500122 case FieldType.Int32:
123 case FieldType.SInt32:
csharptest74c5e0c2011-07-14 13:06:22 -0500124 case FieldType.SFixed32:
125 Write(field, (int) value);
126 break;
csharptest2b868842011-06-10 14:41:47 -0500127 case FieldType.UInt32:
csharptest74c5e0c2011-07-14 13:06:22 -0500128 case FieldType.Fixed32:
129 Write(field, (uint) value);
130 break;
131 case FieldType.Float:
132 Write(field, (float) value);
133 break;
134 case FieldType.Double:
135 Write(field, (double) value);
136 break;
137 case FieldType.String:
138 Write(field, (string) value);
139 break;
140 case FieldType.Bytes:
141 Write(field, (ByteString) value);
142 break;
143 case FieldType.Group:
144 WriteMessageOrGroup(field, (IMessageLite) value);
145 break;
146 case FieldType.Message:
147 WriteMessageOrGroup(field, (IMessageLite) value);
148 break;
csharptest2b868842011-06-10 14:41:47 -0500149 case FieldType.Enum:
150 {
csharptest74c5e0c2011-07-14 13:06:22 -0500151 if (value is IEnumLite)
152 {
153 WriteEnum(field, ((IEnumLite) value).Number, ((IEnumLite) value).Name);
154 }
155 else if (value is IConvertible)
156 {
157 WriteEnum(field, ((IConvertible) value).ToInt32(CultureInfo.InvariantCulture),
158 ((IConvertible) value).ToString(CultureInfo.InvariantCulture));
159 }
160 else
161 {
162 throw new ArgumentException("Expected an Enum type for field " + field);
163 }
csharptest2b868842011-06-10 14:41:47 -0500164 break;
165 }
166 default:
167 throw InvalidProtocolBufferException.InvalidTag();
168 }
169 }
170
171 /// <summary>
172 /// Writes an array of field values
173 /// </summary>
174 protected virtual void WriteArray(FieldType fieldType, string field, IEnumerable items)
175 {
176 foreach (object obj in items)
csharptest74c5e0c2011-07-14 13:06:22 -0500177 {
csharptest2b868842011-06-10 14:41:47 -0500178 WriteField(fieldType, field, obj);
csharptest74c5e0c2011-07-14 13:06:22 -0500179 }
csharptest2b868842011-06-10 14:41:47 -0500180 }
181
182 /// <summary>
183 /// Writes a numeric unknown field of wire type: Fixed32, Fixed64, or Variant
184 /// </summary>
185 [CLSCompliant(false)]
186 protected virtual void WriteUnknown(WireFormat.WireType wireType, int fieldNumber, ulong value)
csharptest74c5e0c2011-07-14 13:06:22 -0500187 {
188 }
csharptest2b868842011-06-10 14:41:47 -0500189
190 /// <summary>
191 /// Writes an unknown field, Expect WireType of GroupStart or LengthPrefix
192 /// </summary>
193 [CLSCompliant(false)]
194 protected virtual void WriteUnknown(WireFormat.WireType wireType, int fieldNumber, ByteString value)
csharptest74c5e0c2011-07-14 13:06:22 -0500195 {
196 }
csharptest2b868842011-06-10 14:41:47 -0500197
198 #region ICodedOutputStream Members
199
200 void ICodedOutputStream.WriteUnknownGroup(int fieldNumber, IMessageLite value)
csharptest74c5e0c2011-07-14 13:06:22 -0500201 {
202 }
203
csharptest2b868842011-06-10 14:41:47 -0500204 void ICodedOutputStream.WriteUnknownBytes(int fieldNumber, ByteString value)
csharptest74c5e0c2011-07-14 13:06:22 -0500205 {
206 }
207
csharptest2b868842011-06-10 14:41:47 -0500208 void ICodedOutputStream.WriteUnknownField(int fieldNumber, WireFormat.WireType type, ulong value)
csharptest74c5e0c2011-07-14 13:06:22 -0500209 {
210 }
csharptest2b868842011-06-10 14:41:47 -0500211
212 void ICodedOutputStream.WriteMessageSetExtension(int fieldNumber, string fieldName, IMessageLite value)
csharptest74c5e0c2011-07-14 13:06:22 -0500213 {
214 }
csharptest2b868842011-06-10 14:41:47 -0500215
216 void ICodedOutputStream.WriteMessageSetExtension(int fieldNumber, string fieldName, ByteString value)
csharptest74c5e0c2011-07-14 13:06:22 -0500217 {
218 }
csharptest2b868842011-06-10 14:41:47 -0500219
220 void ICodedOutputStream.WriteField(FieldType fieldType, int fieldNumber, string fieldName, object value)
csharptest74c5e0c2011-07-14 13:06:22 -0500221 {
222 WriteField(fieldType, fieldName, value);
223 }
csharptest2b868842011-06-10 14:41:47 -0500224
225 void ICodedOutputStream.WriteDouble(int fieldNumber, string fieldName, double value)
csharptest74c5e0c2011-07-14 13:06:22 -0500226 {
227 Write(fieldName, value);
228 }
csharptest2b868842011-06-10 14:41:47 -0500229
230 void ICodedOutputStream.WriteFloat(int fieldNumber, string fieldName, float value)
csharptest74c5e0c2011-07-14 13:06:22 -0500231 {
232 Write(fieldName, value);
233 }
csharptest2b868842011-06-10 14:41:47 -0500234
235 void ICodedOutputStream.WriteUInt64(int fieldNumber, string fieldName, ulong value)
csharptest74c5e0c2011-07-14 13:06:22 -0500236 {
237 Write(fieldName, value);
238 }
csharptest2b868842011-06-10 14:41:47 -0500239
240 void ICodedOutputStream.WriteInt64(int fieldNumber, string fieldName, long value)
csharptest74c5e0c2011-07-14 13:06:22 -0500241 {
242 Write(fieldName, value);
243 }
csharptest2b868842011-06-10 14:41:47 -0500244
245 void ICodedOutputStream.WriteInt32(int fieldNumber, string fieldName, int value)
csharptest74c5e0c2011-07-14 13:06:22 -0500246 {
247 Write(fieldName, value);
248 }
csharptest2b868842011-06-10 14:41:47 -0500249
250 void ICodedOutputStream.WriteFixed64(int fieldNumber, string fieldName, ulong value)
csharptest74c5e0c2011-07-14 13:06:22 -0500251 {
252 Write(fieldName, value);
253 }
csharptest2b868842011-06-10 14:41:47 -0500254
255 void ICodedOutputStream.WriteFixed32(int fieldNumber, string fieldName, uint value)
csharptest74c5e0c2011-07-14 13:06:22 -0500256 {
257 Write(fieldName, value);
258 }
csharptest2b868842011-06-10 14:41:47 -0500259
260 void ICodedOutputStream.WriteBool(int fieldNumber, string fieldName, bool value)
csharptest74c5e0c2011-07-14 13:06:22 -0500261 {
262 Write(fieldName, value);
263 }
csharptest2b868842011-06-10 14:41:47 -0500264
265 void ICodedOutputStream.WriteString(int fieldNumber, string fieldName, string value)
csharptest74c5e0c2011-07-14 13:06:22 -0500266 {
267 Write(fieldName, value);
268 }
csharptest2b868842011-06-10 14:41:47 -0500269
270 void ICodedOutputStream.WriteGroup(int fieldNumber, string fieldName, IMessageLite value)
csharptest74c5e0c2011-07-14 13:06:22 -0500271 {
272 WriteMessageOrGroup(fieldName, value);
273 }
csharptest2b868842011-06-10 14:41:47 -0500274
275 void ICodedOutputStream.WriteMessage(int fieldNumber, string fieldName, IMessageLite value)
csharptest74c5e0c2011-07-14 13:06:22 -0500276 {
277 WriteMessageOrGroup(fieldName, value);
278 }
csharptest2b868842011-06-10 14:41:47 -0500279
280 void ICodedOutputStream.WriteBytes(int fieldNumber, string fieldName, ByteString value)
csharptest74c5e0c2011-07-14 13:06:22 -0500281 {
282 Write(fieldName, value);
283 }
csharptest2b868842011-06-10 14:41:47 -0500284
285 void ICodedOutputStream.WriteUInt32(int fieldNumber, string fieldName, uint value)
csharptest74c5e0c2011-07-14 13:06:22 -0500286 {
287 Write(fieldName, value);
288 }
csharptest2b868842011-06-10 14:41:47 -0500289
290 void ICodedOutputStream.WriteEnum(int fieldNumber, string fieldName, int value, object rawValue)
csharptest74c5e0c2011-07-14 13:06:22 -0500291 {
292 WriteEnum(fieldName, value, rawValue.ToString());
293 }
csharptest2b868842011-06-10 14:41:47 -0500294
295 void ICodedOutputStream.WriteSFixed32(int fieldNumber, string fieldName, int value)
csharptest74c5e0c2011-07-14 13:06:22 -0500296 {
297 Write(fieldName, value);
298 }
csharptest2b868842011-06-10 14:41:47 -0500299
300 void ICodedOutputStream.WriteSFixed64(int fieldNumber, string fieldName, long value)
csharptest74c5e0c2011-07-14 13:06:22 -0500301 {
302 Write(fieldName, value);
303 }
csharptest2b868842011-06-10 14:41:47 -0500304
305 void ICodedOutputStream.WriteSInt32(int fieldNumber, string fieldName, int value)
csharptest74c5e0c2011-07-14 13:06:22 -0500306 {
307 Write(fieldName, value);
308 }
csharptest2b868842011-06-10 14:41:47 -0500309
310 void ICodedOutputStream.WriteSInt64(int fieldNumber, string fieldName, long value)
csharptest74c5e0c2011-07-14 13:06:22 -0500311 {
312 Write(fieldName, value);
313 }
csharptest2b868842011-06-10 14:41:47 -0500314
315
316 void ICodedOutputStream.WriteArray(FieldType fieldType, int fieldNumber, string fieldName, IEnumerable list)
csharptest74c5e0c2011-07-14 13:06:22 -0500317 {
318 WriteArray(fieldType, fieldName, list);
319 }
csharptest2b868842011-06-10 14:41:47 -0500320
csharptest74c5e0c2011-07-14 13:06:22 -0500321 void ICodedOutputStream.WriteGroupArray<T>(int fieldNumber, string fieldName, IEnumerable<T> list)
322 {
323 WriteArray(FieldType.Group, fieldName, list);
324 }
csharptest2b868842011-06-10 14:41:47 -0500325
csharptest74c5e0c2011-07-14 13:06:22 -0500326 void ICodedOutputStream.WriteMessageArray<T>(int fieldNumber, string fieldName, IEnumerable<T> list)
327 {
328 WriteArray(FieldType.Message, fieldName, list);
329 }
csharptest2b868842011-06-10 14:41:47 -0500330
csharptest74c5e0c2011-07-14 13:06:22 -0500331 void ICodedOutputStream.WriteStringArray(int fieldNumber, string fieldName, IEnumerable<string> list)
332 {
333 WriteArray(FieldType.String, fieldName, list);
334 }
csharptest2b868842011-06-10 14:41:47 -0500335
csharptest74c5e0c2011-07-14 13:06:22 -0500336 void ICodedOutputStream.WriteBytesArray(int fieldNumber, string fieldName, IEnumerable<ByteString> list)
337 {
338 WriteArray(FieldType.Bytes, fieldName, list);
339 }
csharptest2b868842011-06-10 14:41:47 -0500340
csharptest74c5e0c2011-07-14 13:06:22 -0500341 void ICodedOutputStream.WriteBoolArray(int fieldNumber, string fieldName, IEnumerable<bool> list)
342 {
343 WriteArray(FieldType.Bool, fieldName, list);
344 }
csharptest2b868842011-06-10 14:41:47 -0500345
csharptest74c5e0c2011-07-14 13:06:22 -0500346 void ICodedOutputStream.WriteInt32Array(int fieldNumber, string fieldName, IEnumerable<int> list)
347 {
348 WriteArray(FieldType.Int32, fieldName, list);
349 }
csharptest2b868842011-06-10 14:41:47 -0500350
csharptest74c5e0c2011-07-14 13:06:22 -0500351 void ICodedOutputStream.WriteSInt32Array(int fieldNumber, string fieldName, IEnumerable<int> list)
352 {
353 WriteArray(FieldType.SInt32, fieldName, list);
354 }
csharptest2b868842011-06-10 14:41:47 -0500355
csharptest74c5e0c2011-07-14 13:06:22 -0500356 void ICodedOutputStream.WriteUInt32Array(int fieldNumber, string fieldName, IEnumerable<uint> list)
357 {
358 WriteArray(FieldType.UInt32, fieldName, list);
359 }
csharptest2b868842011-06-10 14:41:47 -0500360
csharptest74c5e0c2011-07-14 13:06:22 -0500361 void ICodedOutputStream.WriteFixed32Array(int fieldNumber, string fieldName, IEnumerable<uint> list)
362 {
363 WriteArray(FieldType.Fixed32, fieldName, list);
364 }
csharptest2b868842011-06-10 14:41:47 -0500365
csharptest74c5e0c2011-07-14 13:06:22 -0500366 void ICodedOutputStream.WriteSFixed32Array(int fieldNumber, string fieldName, IEnumerable<int> list)
367 {
368 WriteArray(FieldType.SFixed32, fieldName, list);
369 }
csharptest2b868842011-06-10 14:41:47 -0500370
csharptest74c5e0c2011-07-14 13:06:22 -0500371 void ICodedOutputStream.WriteInt64Array(int fieldNumber, string fieldName, IEnumerable<long> list)
372 {
373 WriteArray(FieldType.Int64, fieldName, list);
374 }
csharptest2b868842011-06-10 14:41:47 -0500375
csharptest74c5e0c2011-07-14 13:06:22 -0500376 void ICodedOutputStream.WriteSInt64Array(int fieldNumber, string fieldName, IEnumerable<long> list)
377 {
378 WriteArray(FieldType.SInt64, fieldName, list);
379 }
csharptest2b868842011-06-10 14:41:47 -0500380
csharptest74c5e0c2011-07-14 13:06:22 -0500381 void ICodedOutputStream.WriteUInt64Array(int fieldNumber, string fieldName, IEnumerable<ulong> list)
382 {
383 WriteArray(FieldType.UInt64, fieldName, list);
384 }
csharptest2b868842011-06-10 14:41:47 -0500385
csharptest74c5e0c2011-07-14 13:06:22 -0500386 void ICodedOutputStream.WriteFixed64Array(int fieldNumber, string fieldName, IEnumerable<ulong> list)
387 {
388 WriteArray(FieldType.Fixed64, fieldName, list);
389 }
csharptest2b868842011-06-10 14:41:47 -0500390
csharptest74c5e0c2011-07-14 13:06:22 -0500391 void ICodedOutputStream.WriteSFixed64Array(int fieldNumber, string fieldName, IEnumerable<long> list)
392 {
393 WriteArray(FieldType.SFixed64, fieldName, list);
394 }
csharptest2b868842011-06-10 14:41:47 -0500395
csharptest74c5e0c2011-07-14 13:06:22 -0500396 void ICodedOutputStream.WriteDoubleArray(int fieldNumber, string fieldName, IEnumerable<double> list)
397 {
398 WriteArray(FieldType.Double, fieldName, list);
399 }
csharptest2b868842011-06-10 14:41:47 -0500400
csharptest74c5e0c2011-07-14 13:06:22 -0500401 void ICodedOutputStream.WriteFloatArray(int fieldNumber, string fieldName, IEnumerable<float> list)
402 {
403 WriteArray(FieldType.Float, fieldName, list);
404 }
csharptest2b868842011-06-10 14:41:47 -0500405
csharptest74c5e0c2011-07-14 13:06:22 -0500406 void ICodedOutputStream.WriteEnumArray<T>(int fieldNumber, string fieldName, IEnumerable<T> list)
407 {
408 WriteArray(FieldType.Enum, fieldName, list);
409 }
csharptest2b868842011-06-10 14:41:47 -0500410
csharptest74c5e0c2011-07-14 13:06:22 -0500411 void ICodedOutputStream.WritePackedArray(FieldType fieldType, int fieldNumber, string fieldName,
412 IEnumerable list)
413 {
414 WriteArray(fieldType, fieldName, list);
415 }
csharptest2b868842011-06-10 14:41:47 -0500416
417
csharptest74c5e0c2011-07-14 13:06:22 -0500418 void ICodedOutputStream.WritePackedBoolArray(int fieldNumber, string fieldName, int computedSize,
419 IEnumerable<bool> list)
420 {
421 WriteArray(FieldType.Bool, fieldName, list);
422 }
csharptest2b868842011-06-10 14:41:47 -0500423
csharptest74c5e0c2011-07-14 13:06:22 -0500424 void ICodedOutputStream.WritePackedInt32Array(int fieldNumber, string fieldName, int computedSize,
425 IEnumerable<int> list)
426 {
427 WriteArray(FieldType.Int32, fieldName, list);
428 }
csharptest2b868842011-06-10 14:41:47 -0500429
csharptest74c5e0c2011-07-14 13:06:22 -0500430 void ICodedOutputStream.WritePackedSInt32Array(int fieldNumber, string fieldName, int computedSize,
431 IEnumerable<int> list)
432 {
433 WriteArray(FieldType.SInt32, fieldName, list);
434 }
csharptest2b868842011-06-10 14:41:47 -0500435
csharptest74c5e0c2011-07-14 13:06:22 -0500436 void ICodedOutputStream.WritePackedUInt32Array(int fieldNumber, string fieldName, int computedSize,
437 IEnumerable<uint> list)
438 {
439 WriteArray(FieldType.UInt32, fieldName, list);
440 }
csharptest2b868842011-06-10 14:41:47 -0500441
csharptest74c5e0c2011-07-14 13:06:22 -0500442 void ICodedOutputStream.WritePackedFixed32Array(int fieldNumber, string fieldName, int computedSize,
443 IEnumerable<uint> list)
444 {
445 WriteArray(FieldType.Fixed32, fieldName, list);
446 }
csharptest2b868842011-06-10 14:41:47 -0500447
csharptest74c5e0c2011-07-14 13:06:22 -0500448 void ICodedOutputStream.WritePackedSFixed32Array(int fieldNumber, string fieldName, int computedSize,
449 IEnumerable<int> list)
450 {
451 WriteArray(FieldType.SFixed32, fieldName, list);
452 }
csharptest2b868842011-06-10 14:41:47 -0500453
csharptest74c5e0c2011-07-14 13:06:22 -0500454 void ICodedOutputStream.WritePackedInt64Array(int fieldNumber, string fieldName, int computedSize,
455 IEnumerable<long> list)
456 {
457 WriteArray(FieldType.Int64, fieldName, list);
458 }
csharptest2b868842011-06-10 14:41:47 -0500459
csharptest74c5e0c2011-07-14 13:06:22 -0500460 void ICodedOutputStream.WritePackedSInt64Array(int fieldNumber, string fieldName, int computedSize,
461 IEnumerable<long> list)
462 {
463 WriteArray(FieldType.SInt64, fieldName, list);
464 }
csharptest2b868842011-06-10 14:41:47 -0500465
csharptest74c5e0c2011-07-14 13:06:22 -0500466 void ICodedOutputStream.WritePackedUInt64Array(int fieldNumber, string fieldName, int computedSize,
467 IEnumerable<ulong> list)
468 {
469 WriteArray(FieldType.UInt64, fieldName, list);
470 }
csharptest2b868842011-06-10 14:41:47 -0500471
csharptest74c5e0c2011-07-14 13:06:22 -0500472 void ICodedOutputStream.WritePackedFixed64Array(int fieldNumber, string fieldName, int computedSize,
473 IEnumerable<ulong> list)
474 {
475 WriteArray(FieldType.Fixed64, fieldName, list);
476 }
csharptest2b868842011-06-10 14:41:47 -0500477
csharptest74c5e0c2011-07-14 13:06:22 -0500478 void ICodedOutputStream.WritePackedSFixed64Array(int fieldNumber, string fieldName, int computedSize,
479 IEnumerable<long> list)
480 {
481 WriteArray(FieldType.SFixed64, fieldName, list);
482 }
csharptest2b868842011-06-10 14:41:47 -0500483
csharptest74c5e0c2011-07-14 13:06:22 -0500484 void ICodedOutputStream.WritePackedDoubleArray(int fieldNumber, string fieldName, int computedSize,
485 IEnumerable<double> list)
486 {
487 WriteArray(FieldType.Double, fieldName, list);
488 }
csharptest2b868842011-06-10 14:41:47 -0500489
csharptest74c5e0c2011-07-14 13:06:22 -0500490 void ICodedOutputStream.WritePackedFloatArray(int fieldNumber, string fieldName, int computedSize,
491 IEnumerable<float> list)
492 {
493 WriteArray(FieldType.Float, fieldName, list);
494 }
csharptest2b868842011-06-10 14:41:47 -0500495
csharptest74c5e0c2011-07-14 13:06:22 -0500496 void ICodedOutputStream.WritePackedEnumArray<T>(int fieldNumber, string fieldName, int computedSize,
497 IEnumerable<T> list)
498 {
499 WriteArray(FieldType.Enum, fieldName, list);
500 }
csharptest2b868842011-06-10 14:41:47 -0500501
502 #endregion
503 }
csharptest74c5e0c2011-07-14 13:06:22 -0500504}