encoding

package
v0.4.1-beta Latest Latest
Warning

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

Go to latest
Published: Sep 7, 2015 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package encoding converts arbitrary objects into byte slices, and vis versa. It also contains helper functions for reading and writing length- prefixed data. See doc/Encoding.md for the full encoding specification.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DecInt64

func DecInt64(b []byte) int64

DecInt64 decodes a slice of 8 bytes into an int64. If len(b) < 8, the slice is padded with zeros.

func DecUint64

func DecUint64(b []byte) uint64

DecUint64 decodes a slice of 8 bytes into a uint64. If len(b) < 8, the slice is padded with zeros.

func EncInt64

func EncInt64(i int64) (b []byte)

EncInt64 encodes an int64 as a slice of 8 bytes.

func EncUint64

func EncUint64(i uint64) (b []byte)

EncUint64 encodes a uint64 as a slice of 8 bytes.

func Marshal

func Marshal(v interface{}) []byte

Marshal returns the encoding of v. For encoding details, see the package docstring.

func MarshalAll

func MarshalAll(v ...interface{}) []byte

MarshalAll encodes all of its inputs and returns their concatenation.

func ReadFile added in v0.3.1

func ReadFile(filename string, v interface{}) error

ReadFile reads the contents of a file and decodes them into v.

func ReadObject

func ReadObject(r io.Reader, obj interface{}, maxLen uint64) error

ReadObject reads and decodes a length-prefixed and marshalled object.

func ReadPrefix

func ReadPrefix(r io.Reader, maxLen uint64) ([]byte, error)

ReadPrefix reads an 8-byte length prefixes, followed by the number of bytes specified in the prefix. The operation is aborted if the prefix exceeds a specified maximum length.

func Unmarshal

func Unmarshal(b []byte, v interface{}) error

Unmarshal decodes the encoded value b and stores it in v, which must be a pointer. The decoding rules are the inverse of those specified in the package docstring.

func WriteFile added in v0.3.1

func WriteFile(filename string, v interface{}) error

WriteFile writes v to a file. The file will be created if it does not exist.

func WriteObject

func WriteObject(w io.Writer, v interface{}) error

WriteObject writes a length-prefixed object to w.

func WritePrefix

func WritePrefix(w io.Writer, data []byte) error

WritePrefix writes a length-prefixed byte slice to w.

Types

type Decoder added in v0.3.1

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

A Decoder reads and decodes values from an input stream.

func NewDecoder added in v0.3.1

func NewDecoder(r io.Reader) *Decoder

NewDecoder returns a new decoder that reads from r.

func (*Decoder) Decode added in v0.3.1

func (d *Decoder) Decode(v interface{}) (err error)

Decode reads the next encoded value from its input stream and stores it in v, which must be a pointer. The decoding rules are the inverse of those specified in the package docstring.

func (*Decoder) Read added in v1.0.0

func (d *Decoder) Read(p []byte) (int, error)

Read implements the io.Reader interface. It also keeps track of the total number of bytes decoded, and panics if that number exceeds a global maximum.

type Encoder added in v0.3.1

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

An Encoder writes objects to an output stream.

func NewEncoder added in v0.3.1

func NewEncoder(w io.Writer) *Encoder

NewEncoder returns a new encoder that writes to w.

func (*Encoder) Encode added in v0.3.1

func (e *Encoder) Encode(v interface{}) error

Encode writes the encoding of v to the stream. For encoding details, see the package docstring.

type SiaMarshaler

type SiaMarshaler interface {
	MarshalSia() []byte
}

A SiaMarshaler can encode itself as a byte slice.

type SiaUnmarshaler

type SiaUnmarshaler interface {
	UnmarshalSia([]byte) error
}

A SiaUnmarshaler can decode itself from a byte slice.

Jump to

Keyboard shortcuts

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