github.com/go-swagger/go-swagger@v0.31.0/codescan/enum.go (about) 1 package codescan 2 3 import ( 4 "go/ast" 5 "strconv" 6 "strings" 7 8 "github.com/go-openapi/spec" 9 ) 10 11 func getEnumBasicLitValue(basicLit *ast.BasicLit) interface{} { 12 switch basicLit.Kind.String() { 13 case "INT": 14 if result, err := strconv.ParseInt(basicLit.Value, 10, 64); err == nil { 15 return result 16 } 17 case "FLOAT": 18 if result, err := strconv.ParseFloat(basicLit.Value, 64); err == nil { 19 return result 20 } 21 default: 22 return strings.Trim(basicLit.Value, "\"") 23 } 24 return nil 25 } 26 27 const extEnumDesc = "x-go-enum-desc" 28 29 func getEnumDesc(extensions spec.Extensions) (desc string) { 30 desc, _ = extensions.GetString(extEnumDesc) 31 return 32 }