mirror of
https://github.com/protocolbuffers/protobuf-go.git
synced 2025-01-04 02:38:50 +00:00
0ae1c9789a
Historically, extensions have been placed in the unknown fields section of the unmarshaled message and decoded lazily on demand. The current unmarshal implementation decodes extensions eagerly at unmarshal time, permitting errors to be immediately reported and correctly detecting unset required fields in extension values. Add support for validated lazy extension decoding, where the extension value is fully validated at initial unmarshal time but the fully unmarshaled message is only created lazily. Make this behavior conditional on the protolegacy flag for now. Change-Id: I9d742496a4bd4dafea83fca8619cd6e8d7e65bc3 Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/216764 Reviewed-by: Joe Tsai <joetsai@google.com>
25 lines
1.1 KiB
Go
25 lines
1.1 KiB
Go
// 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
|