bstream

package module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: May 26, 2019 License: MIT Imports: 1 Imported by: 187

README

BStream: A Bit Stream helper in Golang

GitHub license GoDoc Build Status

Install

go get github.com/kkdai/bstream

Usage

	//New a bit stream writer with default 5 byte
	b := NewBStreamWriter(5)
	
	//Write 0xa0a0 into bstream
	b.WriteBits(0xa0a0, 16)
	
	//Read 4 bit out
	result, err := b.ReadBits(4)
	if err != nil {
		log.Printf("result:%x", result)
		//result:a
	}

Notes

  • BStream is not thread safe. When you need to use it from different goroutines, you need to manage locking yourself.
  • You can use the same *BStream object for reading & writing. However note that currently it is possible to read zero-value data if you read more bits than what has been written.
  • BStream will not modify the data provided to NewBStreamReader. You can reuse the same *BStream object for writing and it will allocate a new underlying buffer.

Inspired

Benchmark

BenchmarkWriteBits-4	100000000	        15.3 ns/op
BenchmarkReadBits-4 	50000000	        26.5 ns/op

Project52

It is one of my project 52.

License

This package is licensed under MIT license. See LICENSE for details.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BStream

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

BStream :

func NewBStreamReader

func NewBStreamReader(data []byte) *BStream

NewBStreamReader :

func NewBStreamWriter

func NewBStreamWriter(nByte uint8) *BStream

NewBStreamWriter :

func (*BStream) Bytes

func (b *BStream) Bytes() []byte

Bytes returns the bytes in the stream - taken from https://github.com/dgryski/go-tsz/bstream.go

func (*BStream) ReadBit

func (b *BStream) ReadBit() (bit, error)

func (*BStream) ReadBits

func (b *BStream) ReadBits(count int) (uint64, error)

ReadBits :

func (*BStream) ReadByte

func (b *BStream) ReadByte() (byte, error)

func (*BStream) WriteBit

func (b *BStream) WriteBit(input bit)

WriteBit :

func (*BStream) WriteBits

func (b *BStream) WriteBits(data uint64, count int)

WriteBits :

func (*BStream) WriteOneByte

func (b *BStream) WriteOneByte(data byte)

WriteOneByte :

Jump to

Keyboard shortcuts

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