Merge pull request #104 from moul/dev/gfanton/add-bool-method-option

feat(options): Add bool method option
This commit is contained in:
Manfred Touron 2018-08-20 17:55:15 +02:00 committed by GitHub
commit 90a63053d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -154,6 +154,7 @@ var ProtoHelpersFuncMap = template.FuncMap{
"leadingDetachedComments": leadingDetachedComments, "leadingDetachedComments": leadingDetachedComments,
"stringFieldExtension": stringFieldExtension, "stringFieldExtension": stringFieldExtension,
"stringMethodOptionsExtension": stringMethodOptionsExtension, "stringMethodOptionsExtension": stringMethodOptionsExtension,
"boolMethodOptionsExtension": boolMethodOptionsExtension,
"boolFieldExtension": boolFieldExtension, "boolFieldExtension": boolFieldExtension,
"isFieldMap": isFieldMap, "isFieldMap": isFieldMap,
"fieldMapKeyType": fieldMapKeyType, "fieldMapKeyType": fieldMapKeyType,
@ -175,7 +176,7 @@ func getStore(s string) interface{} {
return v return v
} }
panic(fmt.Sprintf("No key named '%s' found", s)) return false
} }
func InitPathMap(file *descriptor.FileDescriptorProto) { func InitPathMap(file *descriptor.FileDescriptorProto) {
@ -351,6 +352,41 @@ func stringFieldExtension(fieldID int32, f *descriptor.FieldDescriptorProto) str
return *str return *str
} }
func boolMethodOptionsExtension(fieldID int32, f *descriptor.MethodDescriptorProto) bool {
if f == nil {
return false
}
if f.Options == nil {
return false
}
var extendedType *descriptor.MethodOptions
var extensionType *bool
eds := proto.RegisteredExtensions(f.Options)
if eds[fieldID] == nil {
ed := &proto.ExtensionDesc{
ExtendedType: extendedType,
ExtensionType: extensionType,
Field: fieldID,
Tag: fmt.Sprintf("bytes,%d", fieldID),
}
proto.RegisterExtension(ed)
eds = proto.RegisteredExtensions(f.Options)
}
ext, err := proto.GetExtension(f.Options, eds[fieldID])
if err != nil {
return false
}
b, ok := ext.(*bool)
if !ok {
return false
}
return *b
}
func boolFieldExtension(fieldID int32, f *descriptor.FieldDescriptorProto) bool { func boolFieldExtension(fieldID int32, f *descriptor.FieldDescriptorProto) bool {
if f == nil { if f == nil {
return false return false
@ -378,12 +414,12 @@ func boolFieldExtension(fieldID int32, f *descriptor.FieldDescriptorProto) bool
return false return false
} }
str, ok := ext.(*bool) b, ok := ext.(*bool)
if !ok { if !ok {
return false return false
} }
return *str return *b
} }
func init() { func init() {