Skip to content

Commit

Permalink
up: str, math - remove pkg ErrConvertFail, replace to common.ErrConvType
Browse files Browse the repository at this point in the history
  • Loading branch information
inhere committed Sep 5, 2022
1 parent 985e956 commit 9f349ab
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 51 deletions.
89 changes: 42 additions & 47 deletions mathutil/convert.go
Expand Up @@ -2,17 +2,12 @@ package mathutil

import (
"encoding/json"
"errors"
"fmt"
"strconv"
"strings"
"time"
)

var (
// ErrConvertFail convert error
ErrConvertFail = errors.New("convert data type is failure")
// ErrConvertFail = errors.New("convert data type is failure")
"github.com/gookit/goutil/common"
)

/*************************************************************
Expand Down Expand Up @@ -88,7 +83,7 @@ func ToInt(in interface{}) (iVal int, err error) {
i64, err = tVal.Int64()
iVal = int(i64)
default:
err = ErrConvertFail
err = common.ErrConvType
}
return
}
Expand Down Expand Up @@ -163,7 +158,7 @@ func ToUint(in interface{}) (u64 uint64, err error) {
case string:
u64, err = strconv.ParseUint(strings.TrimSpace(tVal), 10, 0)
default:
err = ErrConvertFail
err = common.ErrConvType
}
return
}
Expand Down Expand Up @@ -232,7 +227,7 @@ func ToInt64(in interface{}) (i64 int64, err error) {
case json.Number:
i64, err = tVal.Int64()
default:
err = ErrConvertFail
err = common.ErrConvType
}
return
}
Expand Down Expand Up @@ -308,7 +303,7 @@ func ToFloat(in interface{}) (f64 float64, err error) {
case json.Number:
f64, err = tVal.Float64()
default:
err = ErrConvertFail
err = common.ErrConvType
}
return
}
Expand All @@ -317,6 +312,42 @@ func ToFloat(in interface{}) (f64 float64, err error) {
* convert intX/floatX to string
*************************************************************/

// StringOrPanic convert intX/floatX value to string, will panic on error
func StringOrPanic(val interface{}) string {
str, err := TryToString(val, true)
if err != nil {
panic(err)
}
return str
}

// MustString convert intX/floatX value to string, will panic on error
func MustString(val interface{}) string {
return StringOrPanic(val)
}

// ToString convert intX/floatX value to string, return error on failed
func ToString(val interface{}) (string, error) {
return TryToString(val, true)
}

// StringOrErr convert intX/floatX value to string, return error on failed
func StringOrErr(val interface{}) (string, error) {
return TryToString(val, true)
}

// QuietString convert intX/floatX value to string, other type convert by fmt.Sprint
func QuietString(val interface{}) string {
str, _ := TryToString(val, false)
return str
}

// String convert intX/floatX value to string, other type convert by fmt.Sprint
func String(val interface{}) string {
str, _ := TryToString(val, false)
return str
}

// TryToString try convert intX/floatX value to string
//
// if defaultAsErr is False, will use fmt.Sprint convert other type
Expand Down Expand Up @@ -356,46 +387,10 @@ func TryToString(val interface{}, defaultAsErr bool) (str string, err error) {
str = value.String()
default:
if defaultAsErr {
err = ErrConvertFail
err = common.ErrConvType
} else {
str = fmt.Sprint(value)
}
}
return
}

// StringOrPanic convert intX/floatX value to string, will panic on error
func StringOrPanic(val interface{}) string {
str, err := TryToString(val, true)
if err != nil {
panic(err)
}
return str
}

// MustString convert intX/floatX value to string, will panic on error
func MustString(val interface{}) string {
return StringOrPanic(val)
}

// ToString convert intX/floatX value to string, return error on failed
func ToString(val interface{}) (string, error) {
return TryToString(val, true)
}

// StringOrErr convert intX/floatX value to string, return error on failed
func StringOrErr(val interface{}) (string, error) {
return TryToString(val, true)
}

// QuietString convert intX/floatX value to string, other type convert by fmt.Sprint
func QuietString(val interface{}) string {
str, _ := TryToString(val, false)
return str
}

// String convert intX/floatX value to string, other type convert by fmt.Sprint
func String(val interface{}) string {
str, _ := TryToString(val, false)
return str
}
6 changes: 6 additions & 0 deletions structs/any.go
@@ -0,0 +1,6 @@
package structs

// alias of interface{}
//
// TIP: cannot add `go:build !go1.18` in file head, that require the go.mod set `go 1.18`
type any = interface{}
6 changes: 6 additions & 0 deletions structs/smap.go
@@ -0,0 +1,6 @@
package structs

// SMap simple map[string]string struct.
type SMap struct {
data map[string]string
}
6 changes: 3 additions & 3 deletions strutil/convert.go
Expand Up @@ -11,12 +11,12 @@ import (
"time"
"unsafe"

"github.com/gookit/goutil/common"
"github.com/gookit/goutil/internal/comfunc"
"github.com/gookit/goutil/mathutil"
)

var (
ErrConvertFail = errors.New("convert data type is failure")
ErrDateLayout = errors.New("invalid date layout string")
ErrInvalidParam = errors.New("invalid input parameter")

Expand Down Expand Up @@ -125,7 +125,7 @@ func AnyToString(val interface{}, defaultAsErr bool) (str string, err error) {
case int32: // same as `rune`
str = strconv.Itoa(int(value))
case int64:
str = strconv.Itoa(int(value))
str = strconv.FormatInt(value, 10)
case uint:
str = strconv.FormatUint(uint64(value), 10)
case uint8:
Expand All @@ -152,7 +152,7 @@ func AnyToString(val interface{}, defaultAsErr bool) (str string, err error) {
str = value.String()
default:
if defaultAsErr {
err = ErrConvertFail
err = common.ErrConvType
} else {
str = fmt.Sprint(value)
}
Expand Down
1 change: 0 additions & 1 deletion strutil/strutil.go
Expand Up @@ -160,7 +160,6 @@ func RenderText(input string, data interface{}, fns template.FuncMap, isFile ...
if err := t.Execute(buf, data); err != nil {
panic(err)
}

return buf.String()
}

Expand Down

0 comments on commit 9f349ab

Please sign in to comment.