123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- package vanity
- import (
- "github.com/gogo/protobuf/gogoproto"
- "github.com/gogo/protobuf/proto"
- descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
- )
- func EnumHasBoolExtension(enum *descriptor.EnumDescriptorProto, extension *proto.ExtensionDesc) bool {
- if enum.Options == nil {
- return false
- }
- value, err := proto.GetExtension(enum.Options, extension)
- if err != nil {
- return false
- }
- if value == nil {
- return false
- }
- if value.(*bool) == nil {
- return false
- }
- return true
- }
- func SetBoolEnumOption(extension *proto.ExtensionDesc, value bool) func(enum *descriptor.EnumDescriptorProto) {
- return func(enum *descriptor.EnumDescriptorProto) {
- if EnumHasBoolExtension(enum, extension) {
- return
- }
- if enum.Options == nil {
- enum.Options = &descriptor.EnumOptions{}
- }
- if err := proto.SetExtension(enum.Options, extension, &value); err != nil {
- panic(err)
- }
- }
- }
- func TurnOffGoEnumPrefix(enum *descriptor.EnumDescriptorProto) {
- SetBoolEnumOption(gogoproto.E_GoprotoEnumPrefix, false)(enum)
- }
- func TurnOffGoEnumStringer(enum *descriptor.EnumDescriptorProto) {
- SetBoolEnumOption(gogoproto.E_GoprotoEnumStringer, false)(enum)
- }
- func TurnOnEnumStringer(enum *descriptor.EnumDescriptorProto) {
- SetBoolEnumOption(gogoproto.E_EnumStringer, true)(enum)
- }
|