You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
627 B
40 lines
627 B
package util
|
|
|
|
import "database/sql/driver"
|
|
|
|
type Enumer interface {
|
|
// json 接口
|
|
MarshalJSON() (data []byte, err error)
|
|
UnmarshalJSON(data []byte) (err error)
|
|
// 数据库接口
|
|
Scan(value interface{}) error
|
|
Value() (driver.Value, error)
|
|
// 字符串接口
|
|
String() string
|
|
// 描述接口
|
|
Desc() string
|
|
}
|
|
|
|
func EnumName(m map[int8]string, v int8) string {
|
|
s, ok := m[v]
|
|
if ok {
|
|
return s
|
|
}
|
|
return m[0]
|
|
}
|
|
|
|
func EnumValue(m map[string]int8, v string) int8 {
|
|
i, ok := m[v]
|
|
if ok {
|
|
return i
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func EnumDesc(m map[int8]string, v int8) string {
|
|
s, ok := m[v]
|
|
if ok {
|
|
return s
|
|
}
|
|
return m[0]
|
|
}
|