You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

43 lines
882 B

package conver
import (
"fmt"
"github.com/dsnet/golib/unitconv"
"time"
)
// ParseDataUnit parse 1Ki -> 1024, 1K -> 1000
func ParseDataUnit(unit string) (val float64, err error) {
val, err = unitconv.ParsePrefix(unit, unitconv.AutoParse)
return
}
func ParseDataUnitInt(unit string) (val int, err error) {
v, err := ParseDataUnit(unit)
val = int(v)
return
}
func MustParseDataUnit(unit string) (val float64) {
val, err := unitconv.ParsePrefix(unit, unitconv.AutoParse)
if err != nil {
panic(fmt.Errorf("error parse data unit %s, %s", unit, err.Error()))
}
return
}
func MustParseDataUnitInt(unit string) (val int) {
return int(MustParseDataUnit(unit))
}
func ParseDuration(s string) (time.Duration, error) {
return time.ParseDuration(s)
}
func MustParseDuration(s string) time.Duration {
d, err := ParseDuration(s)
if err != nil {
panic(err)
}
return d
}