func (param *Param) Description() string {
	return param.tags["desc"]
}
Description gets the description value for the param
package apiware
import (
	"fmt"
	"math"
	"reflect"
	"regexp"
	"strconv"
	"strings"
)
const (
	TAG_PARAM        = "param"   
	TAG_REGEXP       = "regexp"  
	TAG_ERR          = "err"     
	TAG_IGNORE_PARAM = "-"       
	MB                 = 1 << 20  
	defaultMaxMemory   = 32 * MB  
	defaultMaxMemoryMB = 32
)
func ParseTags(s string) map[string]string {
	c := strings.Split(s, ",")
	m := make(map[string]string)
	for _, v := range c {
		a := strings.IndexByte(v, '(')
		b := strings.LastIndexByte(v, ')')
		if a != -1 && b != -1 {
			m[v[:a]] = v[a+1 : b]
			continue
		}
		m[v] = ""
	}
	return m
}
type Param struct {
	apiName    string  
	name       string  
	indexPath  []int
	isRequired bool               
	isFile     bool               
	tags       map[string]string  
	rawTag     reflect.StructTag  
	rawValue   reflect.Value      
	err        error              
}
const (
	fileTypeString           = "multipart.FileHeader"
	cookieTypeString         = "http.Cookie"
	fasthttpCookieTypeString = "fasthttp.Cookie"
	stringTypeString         = "string"
	bytesTypeString          = "[]byte"
	bytes2TypeString         = "[]uint8"
)
var (
	TagInValues = map[string]bool{
		"path":     true,
		"query":    true,
		"formData": true,
		"body":     true,
		"header":   true,
		"cookie":   true,
	}
)
func (param *Param) Raw() interface{} {
	return param.rawValue.Interface()
}
func (param *Param) APIName() string {
	return param.apiName
}
func (param *Param) Name() string {
	return param.name
}
func (param *Param) In() string {
	return param.tags["in"]
}
func (param *Param) IsRequired() bool {
	return param.isRequired
}