| 12345678910111213141516171819202122232425262728293031 |
- package protoext
- import (
- "github.com/golang/protobuf/proto"
- "google.golang.org/protobuf/reflect/protoreflect"
- "google.golang.org/protobuf/types/descriptorpb"
- )
- //go:generate go run github.com/v2fly/v2ray-core/v4/common/errors/errorgen
- func GetMessageOptions(msgDesc protoreflect.MessageDescriptor) (*MessageOpt, error) {
- msgOpt := msgDesc.Options().(*descriptorpb.MessageOptions)
- var V2MessageOption *MessageOpt
- if msgOptRet, err := proto.GetExtension(msgOpt, E_MessageOpt); err != nil {
- return nil, newError("unable to parse extension from message").Base(err)
- } else {
- V2MessageOption = msgOptRet.(*MessageOpt)
- }
- return V2MessageOption, nil
- }
- func GetFieldOptions(fieldDesc protoreflect.FieldDescriptor) (*FieldOpt, error) {
- fieldOpt := fieldDesc.Options().(*descriptorpb.FieldOptions)
- var V2FieldOption *FieldOpt
- if msgOptRet, err := proto.GetExtension(fieldOpt, E_FieldOpt); err != nil {
- return nil, newError("unable to parse extension from message").Base(err)
- } else {
- V2FieldOption = msgOptRet.(*FieldOpt)
- }
- return V2FieldOption, nil
- }
|