flags.go raw

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