Deprecated: Use the "google.golang.org/protobuf" module instead.

package ptypes

import "github.com/golang/protobuf/ptypes"

Package ptypes provides functionality for interacting with well-known types.

Index

Functions

func AnyMessageName

func AnyMessageName(any *anypb.Any) (string, error)

AnyMessageName returns the message name contained in an anypb.Any message. Most type assertions should use the Is function instead.

func Duration

func Duration(dur *durationpb.Duration) (time.Duration, error)

Duration converts a durationpb.Duration to a time.Duration. Duration returns an error if dur is invalid or overflows a time.Duration.

func DurationProto

func DurationProto(d time.Duration) *durationpb.Duration

DurationProto converts a time.Duration to a durationpb.Duration.

func Empty

func Empty(any *anypb.Any) (proto.Message, error)

Empty returns a new message of the type specified in an anypb.Any message. It returns protoregistry.NotFound if the corresponding message type could not be resolved in the global registry.

func Is

func Is(any *anypb.Any, m proto.Message) bool

Is reports whether the Any message contains a message of the specified type.

func MarshalAny

func MarshalAny(m proto.Message) (*anypb.Any, error)

MarshalAny marshals the given message m into an anypb.Any message.

func Timestamp

func Timestamp(ts *timestamppb.Timestamp) (time.Time, error)

Timestamp converts a timestamppb.Timestamp to a time.Time. It returns an error if the argument is invalid.

Unlike most Go functions, if Timestamp returns an error, the first return value is not the zero time.Time. Instead, it is the value obtained from the time.Unix function when passed the contents of the Timestamp, in the UTC locale. This may or may not be a meaningful time; many invalid Timestamps do map to valid time.Times.

A nil Timestamp returns an error. The first return value in that case is undefined.

func TimestampNow

func TimestampNow() *timestamppb.Timestamp

TimestampNow returns a google.protobuf.Timestamp for the current time.

func TimestampProto

func TimestampProto(t time.Time) (*timestamppb.Timestamp, error)

TimestampProto converts the time.Time to a google.protobuf.Timestamp proto. It returns an error if the resulting Timestamp is invalid.

func TimestampString

func TimestampString(ts *timestamppb.Timestamp) string

TimestampString returns the RFC 3339 string for valid Timestamps. For invalid Timestamps, it returns an error message in parentheses.

func UnmarshalAny

func UnmarshalAny(any *anypb.Any, m proto.Message) error

UnmarshalAny unmarshals the encoded value contained in the anypb.Any message into the provided message m. It returns an error if the target message does not match the type in the Any message or if an unmarshal error occurs.

The target message m may be a *DynamicAny message. If the underlying message type could not be resolved, then this returns protoregistry.NotFound.

Types

type DynamicAny

type DynamicAny struct{ proto.Message }

DynamicAny is a value that can be passed to UnmarshalAny to automatically allocate a proto.Message for the type specified in an anypb.Any message. The allocated message is stored in the embedded proto.Message.

Example:

var x ptypes.DynamicAny
if err := ptypes.UnmarshalAny(a, &x); err != nil { ... }
fmt.Printf("unmarshaled message: %v", x.Message)

func (DynamicAny) ProtoMessage

func (m DynamicAny) ProtoMessage()

func (DynamicAny) ProtoReflect

func (m DynamicAny) ProtoReflect() protoreflect.Message

func (DynamicAny) Reset

func (m DynamicAny) Reset()

func (DynamicAny) String

func (m DynamicAny) String() string

Source Files

any.go doc.go duration.go timestamp.go

Directories

PathSynopsis
ptypes/any
ptypes/duration
ptypes/empty
ptypes/struct
ptypes/timestamp
ptypes/wrappers
Version
v1.4.2
Published
May 14, 2020
Platform
darwin/amd64
Imports
10 packages
Last checked
2 hours ago

Tools for package owners.