How do I store a HashSet<EnumType> with protobuf?
Regarding the proto2 implementation, if I defined my enum as 1, 2, 4 etc,
and I set the enum to value 3 (combination of 1 & 2), it serialize the
fields correctly. But when deserialize, I get value 0 back (as 3 is not in
enum).
On Tuesday, November 24, 2015 at 5:10:30 AM UTC-8, Jon Skeet wrote:
> I wasn't anticipating doing so, no. Aside from anything else, it would be
> different from all the other platforms - you'd only end up with a useful
> enum in C# if the developer creating the proto did exactly the right
> thing... and that would look odd for other developers.
>
> I would suggest just using a HashSet<YourEnumType> instead for a set -
> just like there's EnumSet in Java which is a set of values.
>
> (I'm not sure what you mean by "current implementation is forbidden values
> that are combinations" - you can certainly define enums with values of 1,
> 2, 3, 4, 5 etc in proto2).
>
> Jon
>
>
> On Tuesday, 24 November 2015 00:52:53 UTC, Teddy Zhang wrote:
>>
>> C# supports Enum Flags, which is a nice feature.
>>
>> [Flags]
>>> enum MyColor
>>> {
>>> None = 0,
>>> Black = 1,
>>> Red = 2,
>>> Green = 4,
>>> Blue = 8
>>> };
>>
>>
>> However, protobuf seems doesn't support it. There is no way to define a
>> Flags for an enum.
>> Also, for protobuf2, it seem current implementation is forbidden values
>> that are combinations (e.g. 3). In that case it will treat it like unknown
>> fields.
>> In current protobuf 3 c# implemention, the restriction seems gets
>> removed. However, there is still no way to define the enum as Flags.
>>
>> In Java we also have EnumSet to give similar functionality.
>>
>> Will Protobuf C# implementation support this in the future?
>>
>>
--
You received this message because you are subscribed to the Google Groups
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.