code: func (u *UUID) Scan(src interface{}) error {
  	switch src := src.(type) {
  	case []byte:
  		if len(src) == uuid.Size {
  			return u.UnmarshalBinary(src)
  		}
  		return u.UnmarshalText(src)
  
  	case string:
  		return u.UnmarshalText([]byte(src))
  	}
  
  	return fmt.Errorf("uuid: cannot convert %T to UUID", src)
  }
docs: // Scan implements the sql.Scanner interface.
  // A 16-byte slice is handled by UnmarshalBinary, while
  // a longer byte slice or a string is handled by UnmarshalText.