git.sophuwu.com > statlog   
              39
            
             package types

import (
	"fmt"
	"git.sophuwu.com/statlog/types/units"
)

type Bytes uint64

func (b Bytes) Human() string {
	n := float64(b)
	var i int
	for i = units.B; n >= units.KiB && i < units.GiB; i *= units.KiB {
		n /= units.KiB
	}

	return fmt.Sprintf("%.2f %s", n, units.Labels[i])
}

func (b Bytes) HumanSI() string {
	n := float64(b)
	var i int
	for i = units.B; n >= units.KB && i < units.GB; i *= units.KB {
		n /= units.KB
	}
	return fmt.Sprintf("%.2f %s", n, units.Labels[i])
}

func (b *Bytes) FromKiB(v uint64) {
	*b = Bytes(v * units.KiB)
}

func (b Bytes) Value() uint64 {
	return uint64(b)
}

func (b Bytes) String() string {
	return b.Human()
}