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);