goType can now correctly detect arrays of built-in types
This commit is contained in:
parent
6202a3f762
commit
bc937830d2
27
helpers.go
27
helpers.go
@ -112,18 +112,39 @@ func isFieldRepeated(f *descriptor.FieldDescriptorProto) bool {
|
|||||||
func goType(pkg string, f *descriptor.FieldDescriptorProto) string {
|
func goType(pkg string, f *descriptor.FieldDescriptorProto) string {
|
||||||
switch *f.Type {
|
switch *f.Type {
|
||||||
case descriptor.FieldDescriptorProto_TYPE_DOUBLE:
|
case descriptor.FieldDescriptorProto_TYPE_DOUBLE:
|
||||||
|
if *f.Label == descriptor.FieldDescriptorProto_LABEL_REPEATED {
|
||||||
|
return "[]float64"
|
||||||
|
}
|
||||||
return "float64"
|
return "float64"
|
||||||
case descriptor.FieldDescriptorProto_TYPE_FLOAT:
|
case descriptor.FieldDescriptorProto_TYPE_FLOAT:
|
||||||
|
if *f.Label == descriptor.FieldDescriptorProto_LABEL_REPEATED {
|
||||||
|
return "[]float32"
|
||||||
|
}
|
||||||
return "float32"
|
return "float32"
|
||||||
case descriptor.FieldDescriptorProto_TYPE_INT64:
|
case descriptor.FieldDescriptorProto_TYPE_INT64:
|
||||||
|
if *f.Label == descriptor.FieldDescriptorProto_LABEL_REPEATED {
|
||||||
|
return "[]int64"
|
||||||
|
}
|
||||||
return "int64"
|
return "int64"
|
||||||
case descriptor.FieldDescriptorProto_TYPE_UINT64:
|
case descriptor.FieldDescriptorProto_TYPE_UINT64:
|
||||||
|
if *f.Label == descriptor.FieldDescriptorProto_LABEL_REPEATED {
|
||||||
|
return "[]uint64"
|
||||||
|
}
|
||||||
return "uint64"
|
return "uint64"
|
||||||
case descriptor.FieldDescriptorProto_TYPE_INT32:
|
case descriptor.FieldDescriptorProto_TYPE_INT32:
|
||||||
|
if *f.Label == descriptor.FieldDescriptorProto_LABEL_REPEATED {
|
||||||
|
return "[]uint32"
|
||||||
|
}
|
||||||
return "uint32"
|
return "uint32"
|
||||||
case descriptor.FieldDescriptorProto_TYPE_BOOL:
|
case descriptor.FieldDescriptorProto_TYPE_BOOL:
|
||||||
|
if *f.Label == descriptor.FieldDescriptorProto_LABEL_REPEATED {
|
||||||
|
return "[]bool"
|
||||||
|
}
|
||||||
return "bool"
|
return "bool"
|
||||||
case descriptor.FieldDescriptorProto_TYPE_STRING:
|
case descriptor.FieldDescriptorProto_TYPE_STRING:
|
||||||
|
if *f.Label == descriptor.FieldDescriptorProto_LABEL_REPEATED {
|
||||||
|
return "[]string"
|
||||||
|
}
|
||||||
return "string"
|
return "string"
|
||||||
case descriptor.FieldDescriptorProto_TYPE_MESSAGE:
|
case descriptor.FieldDescriptorProto_TYPE_MESSAGE:
|
||||||
if *f.Label == descriptor.FieldDescriptorProto_LABEL_REPEATED {
|
if *f.Label == descriptor.FieldDescriptorProto_LABEL_REPEATED {
|
||||||
@ -131,8 +152,14 @@ func goType(pkg string, f *descriptor.FieldDescriptorProto) string {
|
|||||||
}
|
}
|
||||||
return fmt.Sprintf("*%s.%s", pkg, shortType(*f.TypeName))
|
return fmt.Sprintf("*%s.%s", pkg, shortType(*f.TypeName))
|
||||||
case descriptor.FieldDescriptorProto_TYPE_BYTES:
|
case descriptor.FieldDescriptorProto_TYPE_BYTES:
|
||||||
|
if *f.Label == descriptor.FieldDescriptorProto_LABEL_REPEATED {
|
||||||
|
return "[]byte"
|
||||||
|
}
|
||||||
return "byte"
|
return "byte"
|
||||||
case descriptor.FieldDescriptorProto_TYPE_UINT32:
|
case descriptor.FieldDescriptorProto_TYPE_UINT32:
|
||||||
|
if *f.Label == descriptor.FieldDescriptorProto_LABEL_REPEATED {
|
||||||
|
return "[]uint32"
|
||||||
|
}
|
||||||
return "uint32"
|
return "uint32"
|
||||||
case descriptor.FieldDescriptorProto_TYPE_ENUM:
|
case descriptor.FieldDescriptorProto_TYPE_ENUM:
|
||||||
return fmt.Sprintf("*%s.%s", pkg, shortType(*f.TypeName))
|
return fmt.Sprintf("*%s.%s", pkg, shortType(*f.TypeName))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user