types.go 821 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package identify
  2. import (
  3. "database/sql/driver"
  4. "encoding/json"
  5. )
  6. // ItemName 点位名称
  7. type ItemName = string
  8. // EventName 事件名称
  9. type EventName = string
  10. // ItemValue 点位值
  11. type ItemValue = string
  12. type Rule struct {
  13. NvIn []ItemValue `json:"NvIn"`
  14. NvNotIn []ItemValue `json:"NvNotIn"`
  15. OvIn []ItemValue `json:"OvIn"`
  16. OvNotIn []ItemValue `json:"OvNotIn"`
  17. }
  18. type MultiRule map[ItemName]Rule
  19. // Scan 实现方法
  20. func (d *MultiRule) Scan(input interface{}) error {
  21. _ = json.Unmarshal(input.([]byte), &d)
  22. return nil
  23. }
  24. func (d MultiRule) Value() (driver.Value, error) {
  25. return json.Marshal(d)
  26. }
  27. // Scan 实现方法
  28. func (d *Rule) Scan(input interface{}) error {
  29. _ = json.Unmarshal(input.([]byte), &d)
  30. return nil
  31. }
  32. func (d Rule) Value() (driver.Value, error) {
  33. return json.Marshal(d)
  34. }