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

2 years ago
  1. package util
  2. import "database/sql/driver"
  3. type Enumer interface {
  4. // json 接口
  5. MarshalJSON() (data []byte, err error)
  6. UnmarshalJSON(data []byte) (err error)
  7. // 数据库接口
  8. Scan(value interface{}) error
  9. Value() (driver.Value, error)
  10. // 字符串接口
  11. String() string
  12. // 描述接口
  13. Desc() string
  14. }
  15. func EnumName(m map[int8]string, v int8) string {
  16. s, ok := m[v]
  17. if ok {
  18. return s
  19. }
  20. return m[0]
  21. }
  22. func EnumValue(m map[string]int8, v string) int8 {
  23. i, ok := m[v]
  24. if ok {
  25. return i
  26. }
  27. return 0
  28. }
  29. func EnumDesc(m map[int8]string, v int8) string {
  30. s, ok := m[v]
  31. if ok {
  32. return s
  33. }
  34. return m[0]
  35. }