123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- // Copyright 2019 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 proto provides functions operating on protocol buffer messages.
- //
- // For documentation on protocol buffers in general, see:
- //
- // https://developers.google.com/protocol-buffers
- //
- // For a tutorial on using protocol buffers with Go, see:
- //
- // https://developers.google.com/protocol-buffers/docs/gotutorial
- //
- // For a guide to generated Go protocol buffer code, see:
- //
- // https://developers.google.com/protocol-buffers/docs/reference/go-generated
- //
- // # Binary serialization
- //
- // This package contains functions to convert to and from the wire format,
- // an efficient binary serialization of protocol buffers.
- //
- // • Size reports the size of a message in the wire format.
- //
- // • Marshal converts a message to the wire format.
- // The MarshalOptions type provides more control over wire marshaling.
- //
- // • Unmarshal converts a message from the wire format.
- // The UnmarshalOptions type provides more control over wire unmarshaling.
- //
- // # Basic message operations
- //
- // • Clone makes a deep copy of a message.
- //
- // • Merge merges the content of a message into another.
- //
- // • Equal compares two messages. For more control over comparisons
- // and detailed reporting of differences, see package
- // "google.golang.org/protobuf/testing/protocmp".
- //
- // • Reset clears the content of a message.
- //
- // • CheckInitialized reports whether all required fields in a message are set.
- //
- // # Optional scalar constructors
- //
- // The API for some generated messages represents optional scalar fields
- // as pointers to a value. For example, an optional string field has the
- // Go type *string.
- //
- // • Bool, Int32, Int64, Uint32, Uint64, Float32, Float64, and String
- // take a value and return a pointer to a new instance of it,
- // to simplify construction of optional field values.
- //
- // Generated enum types usually have an Enum method which performs the
- // same operation.
- //
- // Optional scalar fields are only supported in proto2.
- //
- // # Extension accessors
- //
- // • HasExtension, GetExtension, SetExtension, and ClearExtension
- // access extension field values in a protocol buffer message.
- //
- // Extension fields are only supported in proto2.
- //
- // # Related packages
- //
- // • Package "google.golang.org/protobuf/encoding/protojson" converts messages to
- // and from JSON.
- //
- // • Package "google.golang.org/protobuf/encoding/prototext" converts messages to
- // and from the text format.
- //
- // • Package "google.golang.org/protobuf/reflect/protoreflect" provides a
- // reflection interface for protocol buffer data types.
- //
- // • Package "google.golang.org/protobuf/testing/protocmp" provides features
- // to compare protocol buffer messages with the "github.com/google/go-cmp/cmp"
- // package.
- //
- // • Package "google.golang.org/protobuf/types/dynamicpb" provides a dynamic
- // message type, suitable for working with messages where the protocol buffer
- // type is only known at runtime.
- //
- // This module contains additional packages for more specialized use cases.
- // Consult the individual package documentation for details.
- package proto
|