ptypes

package
v1.4.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 15, 2020 License: BSD-3-Clause Imports: 10 Imported by: 9,096

Documentation

Overview

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

Index

Constants

This section is empty.

Variables

This section is empty.

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 added in v1.4.0

func (m DynamicAny) ProtoMessage()

func (DynamicAny) ProtoReflect added in v1.4.0

func (m DynamicAny) ProtoReflect() protoreflect.Message

func (DynamicAny) Reset added in v1.4.0

func (m DynamicAny) Reset()

func (DynamicAny) String added in v1.4.0

func (m DynamicAny) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL