github.com/rzurga/go-swagger@v0.28.1-0.20211109195225-5d1f453ffa3a/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  }