aboutsummaryrefslogtreecommitdiff
path: root/src/ProtocolBuffers/EnumLite.cs
diff options
context:
space:
mode:
authorcsharptest <roger@csharptest.net>2010-11-07 10:49:33 -0600
committercsharptest <roger@csharptest.net>2010-11-07 10:49:33 -0600
commit804b6d842e9202cd79039cd8e7aa899426d37f78 (patch)
treee0fe5bb1fcca18f49ae4909081a6cfd3291d947c /src/ProtocolBuffers/EnumLite.cs
parent64bfac2825d69c0359e40c876ec4130e23f53fb7 (diff)
downloadprotobuf-804b6d842e9202cd79039cd8e7aa899426d37f78.tar.gz
protobuf-804b6d842e9202cd79039cd8e7aa899426d37f78.tar.bz2
protobuf-804b6d842e9202cd79039cd8e7aa899426d37f78.zip
Implementation work for Lite runtime and generator
Diffstat (limited to 'src/ProtocolBuffers/EnumLite.cs')
-rw-r--r--src/ProtocolBuffers/EnumLite.cs31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/ProtocolBuffers/EnumLite.cs b/src/ProtocolBuffers/EnumLite.cs
new file mode 100644
index 00000000..0c6c9afb
--- /dev/null
+++ b/src/ProtocolBuffers/EnumLite.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Google.ProtocolBuffers {
+
+ ///<summary>
+ ///Interface for an enum value or value descriptor, to be used in FieldSet.
+ ///The lite library stores enum values directly in FieldSets but the full
+ ///library stores EnumValueDescriptors in order to better support reflection.
+ ///</summary>
+ public interface IEnumLite {
+ int Number { get; }
+ }
+
+ ///<summary>
+ ///Interface for an object which maps integers to {@link EnumLite}s.
+ ///{@link Descriptors.EnumDescriptor} implements this interface by mapping
+ ///numbers to {@link Descriptors.EnumValueDescriptor}s. Additionally,
+ ///every generated enum type has a static method internalGetValueMap() which
+ ///returns an implementation of this type that maps numbers to enum values.
+ ///</summary>
+ public interface IEnumLiteMap<T> : IEnumLiteMap
+ where T : IEnumLite {
+ T FindValueByNumber(int number);
+ }
+
+ public interface IEnumLiteMap {
+ bool IsValidValue(IEnumLite value);
+ }
+}