31 lines
		
	
	
		
			556 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			556 B
		
	
	
	
		
			Go
		
	
	
	
package semver
 | 
						|
 | 
						|
import (
 | 
						|
	"database/sql/driver"
 | 
						|
	"fmt"
 | 
						|
)
 | 
						|
 | 
						|
// Scan implements the database/sql.Scanner interface.
 | 
						|
func (v *Version) Scan(src interface{}) (err error) {
 | 
						|
	var str string
 | 
						|
	switch src := src.(type) {
 | 
						|
	case string:
 | 
						|
		str = src
 | 
						|
	case []byte:
 | 
						|
		str = string(src)
 | 
						|
	default:
 | 
						|
		return fmt.Errorf("Version.Scan: cannot convert %T to string.", src)
 | 
						|
	}
 | 
						|
 | 
						|
	if t, err := Parse(str); err == nil {
 | 
						|
		*v = t
 | 
						|
	}
 | 
						|
 | 
						|
	return
 | 
						|
}
 | 
						|
 | 
						|
// Value implements the database/sql/driver.Valuer interface.
 | 
						|
func (v Version) Value() (driver.Value, error) {
 | 
						|
	return v.String(), nil
 | 
						|
}
 |