...

Package protoimpl

import "google.golang.org/protobuf/runtime/protoimpl"
Overview
Index

Overview ▾

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.

Constants

const (
    // MaxVersion is the maximum supported version for generated .pb.go files.
    // It is always the current version of the module.
    MaxVersion = version.Minor

    // GenVersion is the runtime version required by generated .pb.go files.
    // This is incremented when generated code relies on new functionality
    // in the runtime.
    GenVersion = 20

    // MinVersion is the minimum supported version for generated .pb.go files.
    // This is incremented when the runtime drops support for old code.
    MinVersion = 0
)

UnsafeEnabled specifies whether package unsafe can be used.

const UnsafeEnabled = impl.UnsafeEnabled

Variables

var X impl.Export

type DescBuilder

Types used by generated code in init functions.

type DescBuilder = filedesc.Builder

type EnforceVersion

EnforceVersion is used by code generated by protoc-gen-go to statically enforce minimum and maximum versions of this package. A compilation failure implies either that:

The runtime package can be upgraded by running:

go get google.golang.org/protobuf

The generated code can be regenerated by running:

protoc --go_out=${PROTOC_GEN_GO_ARGS} ${PROTO_FILES}

Example usage by generated code:

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(genVersion - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - genVersion)
)

The genVersion is the current minor version used to generated the code. This compile-time check relies on negative integer overflow of a uint being a compilation failure (guaranteed by the Go specification).

type EnforceVersion uint

type EnumInfo

Types used by generated code to implement EnumType, MessageType, and ExtensionType.

type EnumInfo = impl.EnumInfo

type ExtensionFieldV1

type ExtensionFieldV1 = impl.ExtensionField

type ExtensionFields

type ExtensionFields = impl.ExtensionFields

type ExtensionInfo

type ExtensionInfo = impl.ExtensionInfo

type MessageInfo

type MessageInfo = impl.MessageInfo

type MessageState

Types embedded in generated messages.

type MessageState = impl.MessageState

type Pointer

type Pointer = impl.Pointer

type SizeCache

type SizeCache = impl.SizeCache

type TypeBuilder

type TypeBuilder = filetype.Builder

type UnknownFields

type UnknownFields = impl.UnknownFields

type WeakFields

type WeakFields = impl.WeakFields