int_util.go 899 Bytes
package webutility

import (
	"fmt"
	"strconv"
)

// ClampInt64 ...
func ClampInt64(v, min, max int64) int64 {
	if v < min {
		return min
	} else if v > max {
		return max
	}

	return v
}

// InRangeInt64 ...
func InRangeInt64(v, min, max int64) bool {
	return (v >= min && v <= max)
}

// StringToInt64 ...
func StringToInt64(s string) int64 {
	i, _ := strconv.ParseInt(s, 10, 64)
	return i
}

// StringToFloat64 ...
func StringToFloat64(s string) float64 {
	f, _ := strconv.ParseFloat(s, 64)
	return f
}

// Int64ToString ...
func Int64ToString(i int64) string {
	return fmt.Sprintf("%d", i)
}

// BoolToInt64 ...
func BoolToInt64(b bool) int64 {
	if b {
		return 1
	}
	return 0
}

// Int64ToBool ...
func Int64ToBool(i int64) bool {
	return i != 0
}

func StringToValidInt64(s string) (int64, bool) {
	i, err := strconv.ParseInt(s, 10, 64)
	if err != nil {
		return i, false
	}
	return i, true
}