Files
cloud-services/pkg/dbc/state/helpers.go

50 lines
1.0 KiB
Go

package state
import (
"fmt"
"math"
"time"
)
const redisObjectExpire = 604800
const errInvalidValue = "invalid value %f"
func FloatToBool(input float64) interface{} {
return int(input) != 0
}
func RoundMilli(input float64) interface{} {
return math.Round(input*1000) / 1000
}
func RoundGPS(input float64) interface{} {
return math.Round(input*100000) / 100000
}
func IntCeil(input float64) interface{} {
return int(math.Ceil(input))
}
func IntFloor(input float64) interface{} {
return int(math.Floor(input))
}
func Int(input float64) interface{} {
return int(input)
}
// WHy does this return an array of bytes instead of a string, or a time.Time
func SerializeTimestampUSec(timestampUSec int) ([]byte, error) {
return time.UnixMicro(int64(timestampUSec)).UTC().MarshalJSON()
}
func GetMappedStrValues(valueMap map[float64]string) func(float64) interface{} {
return func(input float64) interface{} {
if value, ok := valueMap[input]; ok {
return value
}
return fmt.Sprintf(errInvalidValue, input)
}
}