sql.go 556 B

123456789101112131415161718192021222324252627282930
  1. package semver
  2. import (
  3. "database/sql/driver"
  4. "fmt"
  5. )
  6. // Scan implements the database/sql.Scanner interface.
  7. func (v *Version) Scan(src interface{}) (err error) {
  8. var str string
  9. switch src := src.(type) {
  10. case string:
  11. str = src
  12. case []byte:
  13. str = string(src)
  14. default:
  15. return fmt.Errorf("Version.Scan: cannot convert %T to string.", src)
  16. }
  17. if t, err := Parse(str); err == nil {
  18. *v = t
  19. }
  20. return
  21. }
  22. // Value implements the database/sql/driver.Valuer interface.
  23. func (v Version) Value() (driver.Value, error) {
  24. return v.String(), nil
  25. }