diff options
author | csharptest <roger@csharptest.net> | 2010-11-07 10:49:33 -0600 |
---|---|---|
committer | csharptest <roger@csharptest.net> | 2010-11-07 10:49:33 -0600 |
commit | 804b6d842e9202cd79039cd8e7aa899426d37f78 (patch) | |
tree | e0fe5bb1fcca18f49ae4909081a6cfd3291d947c /src/ProtocolBuffers/EnumLite.cs | |
parent | 64bfac2825d69c0359e40c876ec4130e23f53fb7 (diff) | |
download | protobuf-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.cs | 31 |
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); + } +} |