binaryio

package module
v0.0.0-...-b746ac4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 4, 2018 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package binaryio provides a wrapper to encoding/binary to provide a concise API.

Numbers are translated by reading and writing fixed-size values. A fixed-size value is either a fixed-size arithmetic type (bool, int8, uint8, int16, ...) or an array only fixed-size values.

This package is intended for decoding and encoding existing binary formats and is not written as a high performance serializer deserializer.

Index

Constants

This section is empty.

Variables

View Source
var ErrShortRead = errors.New("short read")

Functions

func Size

func Size(value interface{}) int

Types

type BinaryBufferReader

type BinaryBufferReader struct {
	BinaryReader
	// contains filtered or unexported fields
}

func (BinaryBufferReader) Len

func (reader BinaryBufferReader) Len() int

Return the number of bytes remaining in the buffer

type BinaryBufferWriter

type BinaryBufferWriter struct {
	BinaryWriter
	// contains filtered or unexported fields
}

func (BinaryBufferWriter) Bytes

func (writer BinaryBufferWriter) Bytes() []byte

Return the byte representation of the underlying buffer

type BinaryReader

type BinaryReader struct {
	// contains filtered or unexported fields
}

func (BinaryReader) Read

func (reader BinaryReader) Read(value interface{}) error
Read any fixed size value. The  parameter should be a pointer to the underlying type.

// var value uint32 // if err := reader.Read(&value); err != nil { // ... // }

func (BinaryReader) ReadByte

func (reader BinaryReader) ReadByte() (byte, error)

func (BinaryReader) ReadBytes

func (reader BinaryReader) ReadBytes(expected int) ([]byte, error)

func (BinaryReader) ReadInt16

func (reader BinaryReader) ReadInt16() (int16, error)

func (BinaryReader) ReadInt16s

func (reader BinaryReader) ReadInt16s(expected int) ([]int16, error)

func (BinaryReader) ReadInt32

func (reader BinaryReader) ReadInt32() (int32, error)

func (BinaryReader) ReadInt32s

func (reader BinaryReader) ReadInt32s(expected int) ([]int32, error)

func (BinaryReader) ReadInt64

func (reader BinaryReader) ReadInt64() (int64, error)

func (BinaryReader) ReadInt64s

func (reader BinaryReader) ReadInt64s(expected int) ([]int64, error)

func (BinaryReader) ReadUint16

func (reader BinaryReader) ReadUint16() (uint16, error)

func (BinaryReader) ReadUint16s

func (reader BinaryReader) ReadUint16s(expected int) ([]uint16, error)

func (BinaryReader) ReadUint32

func (reader BinaryReader) ReadUint32() (uint32, error)

func (BinaryReader) ReadUint32s

func (reader BinaryReader) ReadUint32s(expected int) ([]uint32, error)

func (BinaryReader) ReadUint64

func (reader BinaryReader) ReadUint64() (uint64, error)

func (BinaryReader) ReadUint64s

func (reader BinaryReader) ReadUint64s(expected int) ([]uint64, error)

func (BinaryReader) Skip

func (reader BinaryReader) Skip(count int) error

Skip n bytes of the output

type BinaryWriter

type BinaryWriter struct {
	// contains filtered or unexported fields
}

func (BinaryWriter) Write

func (writer BinaryWriter) Write(value interface{}) error

Write any fixed sized type or array of fixed size types

func (BinaryWriter) WriteByte

func (writer BinaryWriter) WriteByte(b byte) error

func (BinaryWriter) WriteBytes

func (writer BinaryWriter) WriteBytes(bytes []byte) error

func (BinaryWriter) WriteInt16

func (writer BinaryWriter) WriteInt16(value int16) error

func (BinaryWriter) WriteInt16s

func (writer BinaryWriter) WriteInt16s(values []int16) error

func (BinaryWriter) WriteInt32

func (writer BinaryWriter) WriteInt32(value int32) error

func (BinaryWriter) WriteInt32s

func (writer BinaryWriter) WriteInt32s(values []int32) error

func (BinaryWriter) WriteInt64

func (writer BinaryWriter) WriteInt64(value int64) error

func (BinaryWriter) WriteInt64s

func (writer BinaryWriter) WriteInt64s(values []int64) error

func (BinaryWriter) WriteUint16

func (writer BinaryWriter) WriteUint16(value uint16) error

func (BinaryWriter) WriteUint16s

func (writer BinaryWriter) WriteUint16s(values []uint16) error

func (BinaryWriter) WriteUint32

func (writer BinaryWriter) WriteUint32(value uint32) error

func (BinaryWriter) WriteUint32s

func (writer BinaryWriter) WriteUint32s(values []uint32) error

func (BinaryWriter) WriteUint64

func (writer BinaryWriter) WriteUint64(value uint64) error

func (BinaryWriter) WriteUint64s

func (writer BinaryWriter) WriteUint64s(values []uint64) error

type IBinaryBufferReader

type IBinaryBufferReader interface {
	IBinaryReader
	// Get the number of bytes remaining in the buffer.
	Len() int
}

IBinaryBufferReader implements the IBinaryReader interface over a bytes.Buffer

func BigEndianBufferReader

func BigEndianBufferReader(buf []byte) IBinaryBufferReader

Create a new big endian reader using the provided buf as the underlying stream.

func LittleEndianBufferReader

func LittleEndianBufferReader(buf []byte) IBinaryBufferReader

Create a new little endian reader using the provided buf as the underlying stream.

type IBinaryBufferWriter

type IBinaryBufferWriter interface {
	IBinaryWriter
	// Return the binary representation of
	Bytes() []byte
}

IBinaryBufferWriter implements the IBinaryWriter interfaces on top of bytes.Buffer

func BigEndianBufferWriter

func BigEndianBufferWriter() IBinaryBufferWriter

Create a new big endian writer using a bytes.Buffer as the underlying stream

func LittleEndianBufferWriter

func LittleEndianBufferWriter() IBinaryBufferWriter

Create a new little endian writer using a bytes.Buffer as the underlying stream

func NewBigEndianBufferWriter

func NewBigEndianBufferWriter(capacity int) IBinaryBufferWriter

Create a new big endian writer using a bytes.Buffer as the underlying stream. The buffer will have capacity specified.

func NewLittleEndianBufferWriter

func NewLittleEndianBufferWriter(capacity int) IBinaryBufferWriter

Create a new little endian writer using a bytes.Buffer as the underlying stream. The buffer will have capacity specified.

type IBinaryReader

type IBinaryReader interface {
	//  Read any fixed size value. The  parameter should be a pointer to the underlying type.
	// // var value uint32
	// // if err :=  reader.Read(&value); err != nil {
	// //     ...
	// // }
	Read(value interface{}) error
	ReadByte() (byte, error)
	ReadBytes(expected int) ([]byte, error)
	ReadUint16() (uint16, error)
	ReadInt16() (int16, error)
	ReadUint16s(expected int) ([]uint16, error)
	ReadInt16s(expected int) ([]int16, error)
	ReadUint32() (uint32, error)
	ReadInt32() (int32, error)
	ReadUint32s(expected int) ([]uint32, error)
	ReadInt32s(expected int) ([]int32, error)
	ReadUint64() (uint64, error)
	ReadInt64() (int64, error)
	ReadUint64s(expected int) ([]uint64, error)
	ReadInt64s(expected int) ([]int64, error)
	//  Skip n bytes of the output
	Skip(count int) error
}

IBinaryReader wraps the encoding/binary interface to allow decoding of binary streams.

func BigEndianReaderFrom

func BigEndianReaderFrom(reader io.Reader) IBinaryReader

Create a new big endian reader using the provided reader as the underlying stream.

func LittleEndianReaderFrom

func LittleEndianReaderFrom(reader io.Reader) IBinaryReader

Create a new little endian reader using the provided reader as the underlying stream.

type IBinaryWriter

type IBinaryWriter interface {
	//  Write any fixed sized type or array of fixed size types
	Write(interface{}) error
	WriteByte(byte) error
	WriteBytes([]byte) error
	WriteInt16(int16) error
	WriteUint16(uint16) error
	WriteInt16s([]int16) error
	WriteUint16s([]uint16) error
	WriteInt32(int32) error
	WriteUint32(uint32) error
	WriteInt32s([]int32) error
	WriteUint32s([]uint32) error
	WriteInt64(int64) error
	WriteUint64(uint64) error
	WriteInt64s([]int64) error
	WriteUint64s([]uint64) error
}

IBinaryWriter exposes methods to write fixed sized numbers to an underlying writer implementation

func NewBigEndianFromWriter

func NewBigEndianFromWriter(writer io.Writer) IBinaryWriter

Create a new big endian writer using the provided writer as the underlying stream

func NewLittleEndianFromWriter

func NewLittleEndianFromWriter(writer io.Writer) IBinaryWriter

Create a new little endian writer using the provided writer as the underlying stream

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL