Several performance tweaks
- Removed default value assingment when default is equal to default(T)
- Added Benchmarks for most types and repeated/packed arrays
- Left PopsicleList's list fields uninitialized util needed
- Changed CodedInputStream's repated/packed reader
- Changed Enum writers to simply cast to int
- Changed the WriteEnum to use object rawValue that provides .ToString() if needed
- Should be fully on par with original library for performance, gaining 2x-3x in some cases
diff --git a/src/ProtocolBuffers/ICodedOutputStream.cs b/src/ProtocolBuffers/ICodedOutputStream.cs
index db7ea6e..6408d98 100644
--- a/src/ProtocolBuffers/ICodedOutputStream.cs
+++ b/src/ProtocolBuffers/ICodedOutputStream.cs
@@ -70,7 +70,7 @@
[CLSCompliant(false)]
void WriteUInt32(int fieldNumber, string fieldName, uint value);
- void WriteEnum(int fieldNumber, string fieldName, int value, string textValue);
+ void WriteEnum(int fieldNumber, string fieldName, int value, object rawValue);
void WriteSFixed32(int fieldNumber, string fieldName, int value);
void WriteSFixed64(int fieldNumber, string fieldName, long value);
void WriteSInt32(int fieldNumber, string fieldName, int value);