io.go
func ReadBinary(r io.Reader, order binary.ByteOrder, data interface{}) (n int, err error) {
	countingReader := CountingReader{Reader: r}
	err = binary.Read(&countingReader, order, data)
	return countingReader.BytesRead, err
}
func ReadBinary(r io.Reader, order binary.ByteOrder, data interface{}) (n int, err error) {
	countingReader := CountingReader{Reader: r}
	err = binary.Read(&countingReader, order, data)
	return countingReader.BytesRead, err
}
func ReadBinary ( r io . Reader , order binary . ByteOrder , data interface { } ) ( n int , err error ) { countingReader := CountingReader { Reader : r } err = binary . Read ( & countingReader , order , data ) return countingReader . BytesRead , err }
// ReadBinary wraps binary.Read with a CountingReader and returns
// the acutal bytes read by it.
ReadBinary wraps binary . Read with a CountingReader and returns the acutal bytes read by it .