aboutsummaryrefslogtreecommitdiff
path: root/csharp/src/ProtocolBuffers/CodedOutputStream.ComputeSize.cs
diff options
context:
space:
mode:
authorJon Skeet <skeet@pobox.com>2015-06-11 21:15:36 +0100
committerJon Skeet <skeet@pobox.com>2015-06-11 21:15:36 +0100
commit39aaf21d5194fdc07c296847def8e7795279e041 (patch)
tree174c362717574e13047c4d590b5f9609405aed84 /csharp/src/ProtocolBuffers/CodedOutputStream.ComputeSize.cs
parentce0e348ded9cb7e180588476ebb5a8f3e0460f4e (diff)
downloadprotobuf-39aaf21d5194fdc07c296847def8e7795279e041.tar.gz
protobuf-39aaf21d5194fdc07c296847def8e7795279e041.tar.bz2
protobuf-39aaf21d5194fdc07c296847def8e7795279e041.zip
Reimplement enums as int values, and get rid of EnumHelper.
This makes repeated fields really awkward at the moment - but when we reimplement RepeatedField<T> to be backed by an array, we can cast the array directly...
Diffstat (limited to 'csharp/src/ProtocolBuffers/CodedOutputStream.ComputeSize.cs')
-rw-r--r--csharp/src/ProtocolBuffers/CodedOutputStream.ComputeSize.cs12
1 files changed, 6 insertions, 6 deletions
diff --git a/csharp/src/ProtocolBuffers/CodedOutputStream.ComputeSize.cs b/csharp/src/ProtocolBuffers/CodedOutputStream.ComputeSize.cs
index 58475ff7..96be9db5 100644
--- a/csharp/src/ProtocolBuffers/CodedOutputStream.ComputeSize.cs
+++ b/csharp/src/ProtocolBuffers/CodedOutputStream.ComputeSize.cs
@@ -196,7 +196,7 @@ namespace Google.Protobuf
/// enum field, including the tag. The caller is responsible for
/// converting the enum value to its numeric value.
/// </summary>
- public static int ComputeEnumSize<T>(int fieldNumber, T value) where T : struct, IComparable, IFormattable
+ public static int ComputeEnumSize(int fieldNumber, int value)
{
return ComputeTagSize(fieldNumber) + ComputeEnumSizeNoTag(value);
}
@@ -371,10 +371,10 @@ namespace Google.Protobuf
/// enum field, including the tag. The caller is responsible for
/// converting the enum value to its numeric value.
/// </summary>
- public static int ComputeEnumSizeNoTag<T>(T value) where T : struct, IComparable, IFormattable
+ public static int ComputeEnumSizeNoTag(int value)
{
- int serializedValue = EnumHelper<T>.ToInt32(value);
- return ComputeInt32SizeNoTag(serializedValue);
+ // Currently just a pass-through, but it's nice to separate it logically.
+ return ComputeInt32SizeNoTag(value);
}
/// <summary>
@@ -555,7 +555,7 @@ namespace Google.Protobuf
case FieldType.SInt64:
return ComputeSInt64Size(fieldNumber, (long) value);
case FieldType.Enum:
- return ComputeEnumSize(fieldNumber, Convert.ToInt64(value));
+ return ComputeEnumSize(fieldNumber, (int) value);
default:
throw new ArgumentOutOfRangeException("Invalid field type " + fieldType);
}
@@ -605,7 +605,7 @@ namespace Google.Protobuf
case FieldType.SInt64:
return ComputeSInt64SizeNoTag((long) value);
case FieldType.Enum:
- return ComputeEnumSizeNoTag(Convert.ToInt64(value));
+ return ComputeEnumSizeNoTag((int) value);
default:
throw new ArgumentOutOfRangeException("Invalid field type " + fieldType);
}