|  | // Copyright 2018 The Go Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style | 
|  | // license that can be found in the LICENSE file. | 
|  |  | 
|  | // Package flags provides a set of flags controlled by build tags. | 
|  | package flags | 
|  |  | 
|  | // ProtoLegacy specifies whether to enable support for legacy functionality | 
|  | // such as MessageSets, weak fields, and various other obscure behavior | 
|  | // that is necessary to maintain backwards compatibility with proto1 or | 
|  | // the pre-release variants of proto2 and proto3. | 
|  | // | 
|  | // This is disabled by default unless built with the "protolegacy" tag. | 
|  | // | 
|  | // WARNING: The compatibility agreement covers nothing provided by this flag. | 
|  | // As such, functionality may suddenly be removed or changed at our discretion. | 
|  | const ProtoLegacy = protoLegacy | 
|  |  | 
|  | // LazyUnmarshalExtension specifies whether to lazily unmarshal extensions. | 
|  | // | 
|  | // Lazy extension unmarshaling validates the contents of message-valued | 
|  | // extension fields at unmarshal time, but defers creating the message | 
|  | // structure until the extension is first accessed. | 
|  | const LazyUnmarshalExtensions = ProtoLegacy |