protobuf-go/runtime/protoimpl/impl.go
Joe Tsai 4fddebafc0 all: move v1 types over to the v2 repository
As a goal, v2 should not depend on v1. As another step towards that end,
we move all the types that used to be in the v1 protoapi package over to v2.

For now, we place MessageV1, ExtensionRangeV1, and ExtensionDescV1
in runtime/protoiface since these are types that generated messages will
probably have to reference forever. An alternative location could be
reflect/protoreflect, but it seems unfortunate to have to dirty the
namespace of that package with these types.

We move ExtensionFieldV1, ExtensionFieldsV1, and ExtensionFieldsOf
to internal/impl, since these are related to the implementation of a
generated message.

Since moving these types from v1 to v2 implies that the v1 protoapi
package is useless, we update all usages of v1 protoapi in the v2
repository to point to the relevant v2 type or functionality.

CL/168538 is the corresponding change to alter v1.
There will be a temporary build failure as it is not possible
to submit CL/168519 and CL/168538 atomically.

Change-Id: Ide4025c1b6af5b7f0696f4b65b988b4d10a50f0b
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/168519
Reviewed-by: Herbie Ong <herbie@google.com>
2019-03-22 20:01:07 +00:00

47 lines
1.6 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 protoimpl contains the default implementation for messages
// generated by protoc-gen-go.
//
// WARNING: This package should only ever be imported by generated messages.
// The compatibility agreement covers nothing except for functionality needed
// to keep existing generated messages operational. Breakages that occur due
// to unauthorized usages of this package are not the author's responsibility.
package protoimpl
import (
"github.com/golang/protobuf/v2/internal/fileinit"
"github.com/golang/protobuf/v2/internal/impl"
)
// Version is the current minor version of the package.
// This is incremented every time the API of this package expands.
const Version = 0 // v2.{Version}.x
var X impl.Export
type (
// EnforceVersion is used by code generated by protoc-gen-go
// to statically enforce a minimum version of this package.
// A compilation failure implies that this package is too old and
// needs to be updated to a more recent version.
//
// This package can be upgraded by running:
// go get -u github.com/golang/protobuf/v2/...
//
// Example usage by generated code:
// const _ = protoimpl.EnforceVersion(protoimpl.Version - genVersion)
//
// If genVersion is lower than Version, then this results in a negative
// integer overflow failure when evaluating the uint constant.
EnforceVersion uint
MessageType = impl.MessageType
FileBuilder = fileinit.FileBuilder
ExtensionFieldV1 = impl.ExtensionFieldV1
ExtensionFieldsV1 = impl.ExtensionFieldsV1
)