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 Getfsstat(buf []Statfs_t, flags int) (n int, err error)
- 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
- type Fsid
- type Statfs_t
Constants ¶
const ( MntWait = 1 MfsNameLen = 15 /* length of fs type name, not inc. nul */ MNameLen = 90 /* length of buffer for returned name */ MFSTYPENAMELEN = 16 /* length of fs type name including null */ MAXPATHLEN = 1024 MNAMELEN = MAXPATHLEN SYS_GETFSSTAT64 = 347 )
const ( MntReadOnly = 0x00000001 /* read only filesystem */ MntSynchronous = 0x00000002 /* filesystem written synchronously */ MntNoExec = 0x00000004 /* can't exec from filesystem */ MntNoSuid = 0x00000008 /* don't honor setuid bits on fs */ MntUnion = 0x00000020 /* union with underlying filesystem */ MntAsync = 0x00000040 /* filesystem written asynchronously */ MntSuidDir = 0x00100000 /* special handling of SUID on dirs */ MntSoftDep = 0x00200000 /* soft updates being done */ MntNoSymFollow = 0x00400000 /* do not follow symlinks */ MntGEOMJournal = 0x02000000 /* GEOM journal support enabled */ MntMultilabel = 0x04000000 /* MAC support for individual objects */ MntACLs = 0x08000000 /* ACL support enabled */ MntNoATime = 0x10000000 /* disable update of file access time */ MntClusterRead = 0x40000000 /* disable cluster read */ MntClusterWrite = 0x80000000 /* disable cluster write */ MntNFS4ACLs = 0x00000010 )
sys/mount.h
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 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)
func (DiskPartitionStat) String ¶
func (d DiskPartitionStat) String() string
type DiskUsageStat ¶
type DiskUsageStat struct { Path string `json:"path"` 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