binarycursor

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

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

Go to latest
Published: Aug 25, 2023 License: BSD-3-Clause Imports: 3 Imported by: 1

README

binarycursor

This is a small library that implements a stateful cursor which can read binary data of various types. Handy for parsing binary formats.

usage

reader := bytes.NewReader(data)
c := NewBinaryCursor(reader)

// basic types
_, err := c.ReadUint8()
_, err := c.ReadUint16()
_, err := c.ReadUint32()
_, err := c.ReadUint64()

// strings
_, err := c.ReadNullTerminatedUTF8String()

// LEB128
_, err := c.ReadUleb128()
_, err := c.ReadSleb128()
Suggestions or Feedback

We'd love to hear from you! Get in touch via an issue or pull request.

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrReadWrongSize = errors.New("Wrong size")
View Source
var ErrReaderInvalid = errors.New("Reader is nil")

Functions

This section is empty.

Types

type BinaryCursor

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

func NewBinaryCursor

func NewBinaryCursor(r io.Reader) BinaryCursor

func NewBinaryReaderAtCursor

func NewBinaryReaderAtCursor(r io.ReaderAt, pos int64) BinaryCursor

func NewBinaryReaderCursor

func NewBinaryReaderCursor(br BinaryReader) BinaryCursor

func (*BinaryCursor) FlipOrder

func (c *BinaryCursor) FlipOrder()

func (BinaryCursor) Offset

func (c BinaryCursor) Offset() int64

func (BinaryCursor) Order

func (c BinaryCursor) Order() binary.ByteOrder

func (*BinaryCursor) Read

func (c *BinaryCursor) Read(p []byte) (n int, err error)

func (*BinaryCursor) ReadNullTerminatedUTF8String

func (c *BinaryCursor) ReadNullTerminatedUTF8String() (string, error)

func (*BinaryCursor) ReadSleb128

func (c *BinaryCursor) ReadSleb128() (int64, error)

func (*BinaryCursor) ReadUint16

func (c *BinaryCursor) ReadUint16() (uint16, error)

func (*BinaryCursor) ReadUint32

func (c *BinaryCursor) ReadUint32() (uint32, error)

func (*BinaryCursor) ReadUint64

func (c *BinaryCursor) ReadUint64() (uint64, error)

func (*BinaryCursor) ReadUint8

func (c *BinaryCursor) ReadUint8() (uint8, error)

func (*BinaryCursor) ReadUleb128

func (c *BinaryCursor) ReadUleb128() (uint64, error)

func (*BinaryCursor) SetOrder

func (c *BinaryCursor) SetOrder(o binary.ByteOrder)

type BinaryReader

type BinaryReader struct {
	Order binary.ByteOrder
	// contains filtered or unexported fields
}

func NewBinaryReader

func NewBinaryReader(r io.Reader) BinaryReader

func NewBinaryReaderAt

func NewBinaryReaderAt(r io.ReaderAt, pos int64) BinaryReader

func (*BinaryReader) FlipOrder

func (br *BinaryReader) FlipOrder()

func (BinaryReader) Offset

func (br BinaryReader) Offset() int64

func (*BinaryReader) Read

func (br *BinaryReader) Read(p []byte) (n int, err error)

func (*BinaryReader) ReadNullTerminatedUTF8String

func (br *BinaryReader) ReadNullTerminatedUTF8String() (string, error)

func (*BinaryReader) ReadSleb128

func (br *BinaryReader) ReadSleb128() (int64, error)

func (*BinaryReader) ReadUint16

func (br *BinaryReader) ReadUint16() (uint16, error)

func (*BinaryReader) ReadUint32

func (br *BinaryReader) ReadUint32() (uint32, error)

func (*BinaryReader) ReadUint64

func (br *BinaryReader) ReadUint64() (uint64, error)

func (*BinaryReader) ReadUint8

func (br *BinaryReader) ReadUint8() (uint8, error)

func (*BinaryReader) ReadUleb128

func (br *BinaryReader) ReadUleb128() (uint64, error)

type CountingReader

type CountingReader struct {
	Offset int64
	// contains filtered or unexported fields
}

func NewCountingReader

func NewCountingReader(r io.Reader) CountingReader

func (*CountingReader) Read

func (c *CountingReader) Read(p []byte) (n int, err error)

type PositionReaderAt

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

func NewPositionReaderAt

func NewPositionReaderAt(r io.ReaderAt, pos int64) PositionReaderAt

func (*PositionReaderAt) Read

func (pr *PositionReaderAt) Read(p []byte) (n int, err error)

Jump to

Keyboard shortcuts

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