mirror of
https://github.com/protocolbuffers/protobuf-go.git
synced 2024-12-29 12:17:48 +00:00
e4fcb9f7e7
The protopath package provides a means to programmatically represent a sequence of protobuf reflection operations. The protorange package traverses through a message and calls a user-provided function as it iterates. This feature sets the groundwork for the often requested feature of being able to exclude certain fields when merging or serializing. package protopath type Path []Step type Step struct{ ... } func Root(protoreflect.MessageDescriptor) Step func FieldAccess(protoreflect.FieldDescriptor) Step func UnknownAccess() Step func ListIndex(int) Step func MapIndex(protoreflect.MapKey) Step func AnyExpand(protoreflect.MessageDescriptor) Step func (Step) Kind() StepKind func (Step) FieldDescriptor() protoreflect.FieldDescriptor func (Step) MessageDescriptor() protoreflect.MessageDescriptor func (Step) ListIndex() int func (Step) MapIndex() protoreflect.MapKey func (Step) String() string type StepKind int const RootStep StepKind const FieldAccessStep StepKind const UnknownAccessStep StepKind const ListIndexStep StepKind const MapIndexStep StepKind const AnyExpandStep StepKind type Values struct { Path Path Values []protoreflect.Value } func (Values) Index(int) (out struct{ ... }) func (Values) Len() int func (Values) String() string package protorange var Break error var Terminate error func Range(protoreflect.Message, func(protopath.Values) error) error type Options struct { Stable bool Resolver interface { ... } } func (Options) Range(m protoreflect.Message, push, pop func(protopath.Values) error) error Change-Id: I29cbd5142fe169d78367d54a95d37801888b64f4 Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/236540 Trust: Joe Tsai <joetsai@digital-static.net> Reviewed-by: Damien Neil <dneil@google.com> |
||
---|---|---|
.. | ||
format_test.go | ||
format.go |