diff options
author | umohnani8 <umohnani@redhat.com> | 2017-11-28 09:26:13 -0500 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2017-11-28 16:09:13 +0000 |
commit | c0eceaa403a739355c6e2715b3354f7b15f35fb8 (patch) | |
tree | 4de7905a5fd14ac7146a74e46d49a3fbc3f5902a /vendor/github.com/docker/go-units/size.go | |
parent | ab62fe17ff7910a4727e07f6d075b425185a5860 (diff) | |
download | podman-c0eceaa403a739355c6e2715b3354f7b15f35fb8.tar.gz podman-c0eceaa403a739355c6e2715b3354f7b15f35fb8.tar.bz2 podman-c0eceaa403a739355c6e2715b3354f7b15f35fb8.zip |
Vendor in v0.3.2 of docker/go-units
docker/go-units is used in converting bytes to human readable format
Signed-off-by: umohnani8 <umohnani@redhat.com>
Closes: #82
Approved by: rhatdan
Diffstat (limited to 'vendor/github.com/docker/go-units/size.go')
-rw-r--r-- | vendor/github.com/docker/go-units/size.go | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/vendor/github.com/docker/go-units/size.go b/vendor/github.com/docker/go-units/size.go index f5b82ea24..44616c271 100644 --- a/vendor/github.com/docker/go-units/size.go +++ b/vendor/github.com/docker/go-units/size.go @@ -37,28 +37,40 @@ var ( var decimapAbbrs = []string{"B", "kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"} var binaryAbbrs = []string{"B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"} -// CustomSize returns a human-readable approximation of a size -// using custom format. -func CustomSize(format string, size float64, base float64, _map []string) string { +func getSizeAndUnit(size float64, base float64, _map []string) (float64, string) { i := 0 unitsLimit := len(_map) - 1 for size >= base && i < unitsLimit { size = size / base i++ } - return fmt.Sprintf(format, size, _map[i]) + return size, _map[i] +} + +// CustomSize returns a human-readable approximation of a size +// using custom format. +func CustomSize(format string, size float64, base float64, _map []string) string { + size, unit := getSizeAndUnit(size, base, _map) + return fmt.Sprintf(format, size, unit) +} + +// HumanSizeWithPrecision allows the size to be in any precision, +// instead of 4 digit precision used in units.HumanSize. +func HumanSizeWithPrecision(size float64, precision int) string { + size, unit := getSizeAndUnit(size, 1000.0, decimapAbbrs) + return fmt.Sprintf("%.*g%s", precision, size, unit) } // HumanSize returns a human-readable approximation of a size // capped at 4 valid numbers (eg. "2.746 MB", "796 KB"). func HumanSize(size float64) string { - return CustomSize("%.4g %s", size, 1000.0, decimapAbbrs) + return HumanSizeWithPrecision(size, 4) } // BytesSize returns a human-readable size in bytes, kibibytes, // mebibytes, gibibytes, or tebibytes (eg. "44kiB", "17MiB"). func BytesSize(size float64) string { - return CustomSize("%.4g %s", size, 1024.0, binaryAbbrs) + return CustomSize("%.4g%s", size, 1024.0, binaryAbbrs) } // FromHumanSize returns an integer from a human-readable specification of a |