code: func ToString(value interface{}) (string, error) {
  	switch v := value.(type) {
  	case bool:
  		if v {
  			return "1", nil
  		}
  		return "0", nil
  	case int:
  		return strconv.FormatInt(int64(v), 10), nil
  	case int64:
  		return strconv.FormatInt(int64(v), 10), nil
  	case uint64:
  		return strconv.FormatUint(uint64(v), 10), nil
  	case float32:
  		return strconv.FormatFloat(float64(v), 'f', -1, 32), nil
  	case float64:
  		return strconv.FormatFloat(float64(v), 'f', -1, 64), nil
  	case string:
  		return v, nil
  	case []byte:
  		return string(v), nil
  	case Time:
  		return v.String(), nil
  	case Duration:
  		return v.String(), nil
  	case *MyDecimal:
  		return v.String(), nil
  	case Hex:
  		return v.ToString(), nil
  	case Bit:
  		return v.ToString(), nil
  	case Enum:
  		return v.String(), nil
  	case Set:
  		return v.String(), nil
  	default:
  		return "", errors.Errorf("cannot convert %v(type %T) to string", value, value)
  	}
  }
docs: // ToString converts an interface to a string.