Documentation ¶
Overview ¶
Package binary implements simple translation between numbers and byte sequences and encoding and decoding of varints.
Numbers are translated by reading and writing fixed-size values. A fixed-size value is either a fixed-size arithmetic type (int8, uint8, int16, float32, complex64, ...) or an array or struct containing only fixed-size values.
The varint functions encode and decode single integer values using a variable-length encoding; smaller values require fewer bytes. For a specification, see http://code.google.com/apis/protocolbuffers/docs/encoding.html.
This package favors simplicity over efficiency. Clients that require high-performance serialization, especially for large data structures, should look at more advanced solutions such as the encoding/gob package or protocol buffers.
Index ¶
- Constants
- Variables
- func DiskIOCounters() (map[string]DiskIOCountersStat, error)
- func GetDiskSerialNumber(name string) string
- func Read(r io.Reader, order ByteOrder, data interface{}) error
- func Size(v interface{}) int
- func Write(w io.Writer, order ByteOrder, data interface{}) error
- type ByteOrder
- type DiskIOCountersStat
- type DiskPartitionStat
- type DiskUsageStat
Constants ¶
const (
SectorSize = 512
)
Variables ¶
var BigEndian bigEndian
BigEndian is the big-endian implementation of ByteOrder.
var LittleEndian littleEndian
LittleEndian is the little-endian implementation of ByteOrder.
Functions ¶
func DiskIOCounters ¶
func DiskIOCounters() (map[string]DiskIOCountersStat, error)
func GetDiskSerialNumber ¶
func Read ¶
Read reads structured binary data from r into data. Data must be a pointer to a fixed-size value or a slice of fixed-size values. Bytes read from r are decoded using the specified byte order and written to successive fields of the data. When reading into structs, the field data for fields with blank (_) field names is skipped; i.e., blank field names may be used for padding. When reading into a struct, all non-blank fields must be exported.
func Size ¶
func Size(v interface{}) int
Size returns how many bytes Write would generate to encode the value v, which must be a fixed-size value or a slice of fixed-size values, or a pointer to such data. If v is neither of these, Size returns -1.
func Write ¶
Write writes the binary representation of data into w. Data must be a fixed-size value or a slice of fixed-size values, or a pointer to such data. Bytes written to w are encoded using the specified byte order and read from successive fields of the data. When writing structs, zero values are written for fields with blank (_) field names.
Types ¶
type ByteOrder ¶
type ByteOrder interface { Uint16([]byte) uint16 Uint32([]byte) uint32 Uint64([]byte) uint64 PutUint16([]byte, uint16) PutUint32([]byte, uint32) PutUint64([]byte, uint64) String() string }
A ByteOrder specifies how to convert byte sequences into 16-, 32-, or 64-bit unsigned integers.
type DiskIOCountersStat ¶
type DiskIOCountersStat struct { ReadCount uint64 `json:"read_count"` WriteCount uint64 `json:"write_count"` ReadBytes uint64 `json:"read_bytes"` WriteBytes uint64 `json:"write_bytes"` ReadTime uint64 `json:"read_time"` WriteTime uint64 `json:"write_time"` Name string `json:"name"` IoTime uint64 `json:"io_time"` SerialNumber string `json:"serial_number"` }
func (DiskIOCountersStat) String ¶
func (d DiskIOCountersStat) String() string
type DiskPartitionStat ¶
type DiskPartitionStat struct { Device string `json:"device"` Mountpoint string `json:"mountpoint"` Fstype string `json:"fstype"` Opts string `json:"opts"` }
func DiskPartitions ¶
func DiskPartitions(all bool) ([]DiskPartitionStat, error)
Get disk partitions. should use setmntent(3) but this implement use /etc/mtab file
func (DiskPartitionStat) String ¶
func (d DiskPartitionStat) String() string
type DiskUsageStat ¶
type DiskUsageStat struct { Path string `json:"path"` Fstype string `json:"fstype"` Total uint64 `json:"total"` Free uint64 `json:"free"` Used uint64 `json:"used"` UsedPercent float64 `json:"used_percent"` InodesTotal uint64 `json:"inodes_total"` InodesUsed uint64 `json:"inodes_used"` InodesFree uint64 `json:"inodes_free"` InodesUsedPercent float64 `json:"inodes_used_percent"` }
func DiskUsage ¶
func DiskUsage(path string) (*DiskUsageStat, error)
func (DiskUsageStat) String ¶
func (d DiskUsageStat) String() string