commit | c05538c6a8b9c4de5e7b62c2aa30fc184da175e3 | [log] [tgz] |
---|---|---|
author | Damien Neil <dneil@google.com> | Tue Dec 18 12:45:07 2018 -0800 |
committer | Damien Neil <dneil@google.com> | Tue Dec 18 23:38:22 2018 +0000 |
tree | a50981ade919ddfba54ab54262e2cb85482b1f41 | |
parent | 7bf88d137769ed6baf7e98292a9f5a03ad2d901d [diff] |
reflect/protoreflect: change Options back to an interface{} Introduce a protoreflect.OptionsMessage interface type to represent options messages. The protoreflect package can't deal with concrete options types, to avoid dependency cycles; OptionsMessage serves both as documentation and a single point to define the constraints we apply to options. Change the constraints on options from ProtoMessage to interface{} to permit use of option message types which only implement the v1 proto.Message interface. This still leaves a requirement in the internal/legacy package that options implement protoreflect.ProtoMessage, since that package now uses the v2 Unmarshal. Change-Id: I547518ab2c3b90c3911ef641b05b169d50a4b33a Reviewed-on: https://go-review.googlesource.com/c/154877 Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
WARNING: This repository is in active development. There are no guarantees about API stability. Breaking changes will occur until a stable release is made and announced.
This repository is for the development of the next major Go implementation of protocol buffers. This library makes breaking API changes relative to the existing Go protobuf library. Of particular note, this API aims to make protobuf reflection a first-class feature of the API and implements the protobuf ecosystem in terms of reflection.
List of relevant design documents:
We appreciate community contributions. See CONTRIBUTING.md.
Issues regarding the new API can be filed at github.com/golang/protobuf. Please use a APIv2:
prefix in the title to make it clear that the issue is regarding the new API work.