I have a question about Any types in proto3. I'm guessing they aren't quite
fully-fleshed out since I haven't found a lot in the way of doc or real
support in the Java and Go implementations.

My question: can you use enums or scalar types as values of an Any field?
If so, how do they look?

For scalar types, I can understand if the answer is to use the wrapper
well-known types instead. *But* there doesn't appear to be a wrapper for
enum values. There is a well-known type named google.protobuf.EnumValue,
however it is part of the "schema description" well-known types and doesn't
carry enough data for wrapping an enum value (mainly, it's missing a
reference to its enum type, e.g. a type URL).

It would be nice if the Any message's type_url field could be a URL that
returned an enum description, not just a message description. But the docs
state that the contents at that URL are an encoded google.protobuf.Type,
which describes a message and does not support enum types. Should it
instead have a single one-of field that can be an enum or message
description?

Similarly, the type_url field for google.protobuf.Field is in a similar
conundrum. The doc states it is *"t**he field type URL, without the scheme,
for message or enumeration types"*, but nothing really talks about
enumeration types. The naive assumption is that the URL contents are an
enum description (e.g. an encoded google.protobuf.Enum). But if that's the
case, I could try to put an enum type into an Any field and indicate that
same URL. I then get into trouble because I'd be looking to parse a
google.protobuf.Type, in order to understand the Any message contents, but
actually get back the bytes for a google.protobuf.Enum.

That doesn't seem sound.

----
*Josh Humphries*
[email protected]

-- 
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 https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to