binaryex

package module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Dec 17, 2019 License: MIT Imports: 5 Imported by: 0

README

binaryex

Package binaryex implements functions supplement to binary/encoding package that work with derived and compound types.

It is designed for ease of use before speed.

Status

binaryex behaviour is set. Optimization and additional functionality eventually follow.

License

MIT License. See included LICENSE file.

Documentation

Overview

Package binaryex implements functions supplement to binary/encoding package. It is designed for ease of use before speed.

It supports binary marshaling of all go types, excluding chans, funcs and unsafePointers.

Ints and Uints of any size are encoded as VarInts, floats and complex numbers using binary encoding in LittleEndian order, and strings, arrays, slices and maps are prefixed by a number (varint) specifying number of their elements then written as a LittleEndian byte stream.

Write functions take values or pointers to values. If a Pointer value was passed to a Write function it is dereferenced up to the value itself then written.

Read functions take pointers to output values only as they have to be mutable. If the dereferenced output value is a pointer itself, a new value is allocated for it.

If a pointer with a a nil value was Written, when Read, the pointer will have its' value allocated (not nil) and value set to zero of that type.

All functions can panic if they encounter invalid parameters as most checks are ommited for performance reasons.

If a value supports encoding.Binary(un)Marshaler it is preferred. Watch out for infinite loops if calling Read, ReadReflect, Write or WriteReflect from a BinaryMarshaler or BinaryUnmarshaler implementor.

If an unsupported value is encountered functions will error.

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrUnsupportedValue is returned when an unsupported value is encountered.
	ErrUnsupportedValue = BinaryExError{"unsupported value"}

	// ErrUnadressableValue is returned when a non-pointer value is passed to a Read* function.
	ErrUnadressableValue = BinaryExError{"unadressable value"}

	// ErrUnexpected is returned when an unexpected value is read.
	ErrUnexpected = BinaryExError{"unexpected value"}
)

Functions

func Read

func Read(r io.Reader, val interface{}) error

Read reads a value from r and puts it into val or returns an error if one occured.

func ReadArray

func ReadArray(r io.Reader, val interface{}) error

ReadArray reads an array value from r and puts it into val or returns an error if one occured.

func ReadArrayReflect

func ReadArrayReflect(r io.Reader, v reflect.Value) (err error)

ReadArrayReflect reads an array value from reader r and puts it into v or returns an error if one occured.

func ReadBool

func ReadBool(r io.Reader, b interface{}) error

ReadBool reads a bool value from r and puts it into val or returns an error if one occured.

func ReadBoolReflect

func ReadBoolReflect(r io.Reader, v reflect.Value) (err error)

ReadBoolReflect reads a bool value from reader r and puts it into v or returns an error if one occured.

func ReadMap

func ReadMap(r io.Reader, val interface{}) error

ReadMap reads a map value from r and puts it into val or returns an error if one occured.

func ReadMapReflect

func ReadMapReflect(r io.Reader, v reflect.Value) (err error)

ReadMapReflect reads a map value from reader r and puts it into v or returns an error if one occured.

func ReadNumber

func ReadNumber(r io.Reader, n interface{}) error

ReadNumber reads a number value from r and puts it into val or returns an error if one occured.

func ReadNumberReflect

func ReadNumberReflect(r io.Reader, v reflect.Value) (err error)

ReadNumberReflect reads a number value from reader r and puts it into v or returns an error if one occured.

func ReadReflect

func ReadReflect(r io.Reader, v reflect.Value) (err error)

ReadReflect reads a value from reader r and puts it into v or returns an error if one occured.

func ReadSlice

func ReadSlice(r io.Reader, val interface{}) error

ReadSlice reads a slice value from r and puts it into val or returns an error if one occured.

func ReadSliceReflect

func ReadSliceReflect(r io.Reader, v reflect.Value) (err error)

ReadSliceReflect reads a slice value from reader r and puts it into v or returns an error if one occured.

func ReadString

func ReadString(r io.Reader, s interface{}) error

ReadString reads a value from r and puts it into val or returns an error if one occured.

func ReadStringReflect

func ReadStringReflect(r io.Reader, v reflect.Value) (err error)

ReadSgtringReflect reads a string value from reader r and puts it into v or returns an error if one occured.

func ReadStruct

func ReadStruct(r io.Reader, val interface{}) error

ReadStruct reads a struct value from r and puts it into val or returns an error if one occured.

func ReadStructReflect

func ReadStructReflect(r io.Reader, v reflect.Value) (err error)

ReadStructReflect reads a struct value from reader r and puts it into v or returns an error if one occured.

func Write

func Write(w io.Writer, val interface{}) error

Write writes value val to writer w or returns an error if one occured.

func WriteArray

func WriteArray(w io.Writer, val interface{}) error

WriteArray writes array value val to writer w or returns an error if one occured.

func WriteArrayReflect

func WriteArrayReflect(w io.Writer, v reflect.Value) (err error)

WriteArrayReflect writes an array reflect value v to writer w or returns an error if one occured.

func WriteBool

func WriteBool(w io.Writer, b bool) error

WriteBool writes bool value val to writer w or returns an error if one occured.

func WriteBoolReflect

func WriteBoolReflect(w io.Writer, v reflect.Value) (err error)

WriteBoolReflect writes a bool reflect value v to writer w or returns an error if one occured.

func WriteMap

func WriteMap(w io.Writer, val interface{}) error

WriteMap writes map value val to writer w or returns an error if one occured.

func WriteMapReflect

func WriteMapReflect(w io.Writer, v reflect.Value) (err error)

WriteMapReflect writes a map reflect value v to writer w or returns an error if one occured.

func WriteNumber

func WriteNumber(w io.Writer, n interface{}) error

WriteNumber writes number value val to writer w or returns an error if one occured.

func WriteNumberReflect

func WriteNumberReflect(w io.Writer, v reflect.Value) (err error)

WriteNumberReflect writes a number reflect value v to writer w or returns an error if one occured.

func WriteReflect

func WriteReflect(w io.Writer, v reflect.Value) (err error)

WriteReflect writes a reflect value v to writer w or returns an error if one occured.

func WriteSlice

func WriteSlice(w io.Writer, val interface{}) error

WriteSlice writes slice value val to writer w or returns an error if one occured.

func WriteSliceReflect

func WriteSliceReflect(w io.Writer, v reflect.Value) (err error)

WriteSliceReflect writes a slice reflect value v to writer w or returns an error if one occured.

func WriteString

func WriteString(w io.Writer, s string) error

WriteString writes string value val to writer w or returns an error if one occured.

func WriteStringReflect

func WriteStringReflect(w io.Writer, v reflect.Value) (err error)

WriteStringReflect writes a reflect value v to writer w or returns an error if one occured.

func WriteStruct

func WriteStruct(w io.Writer, val interface{}) error

WriteStruct writes struct value val to writer w or returns an error if one occured.

func WriteStructReflect

func WriteStructReflect(w io.Writer, v reflect.Value) (err error)

WriteStructReflect writes a struct reflect value v to writer w or returns an error if one occured.

Types

type BinaryExError

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

BinaryExError is the base error type of binaryex package.

func (BinaryExError) Error

func (bxe BinaryExError) Error() string

Error satisfies the Error interface.

Jump to

Keyboard shortcuts

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