Documentation ¶
Index ¶
- Constants
- Variables
- func BasicCodecComparator(o1 interface{}, o2 interface{}) int
- func BasicCodecDecoder(r io.Reader, n *int, err *error) (o interface{})
- func BasicCodecEncoder(o interface{}, w io.Writer, n *int, err *error)
- func BinaryBytes(o interface{}) []byte
- func BinaryCompare(a, b interface{}) int
- func BinaryEqual(a, b interface{}) bool
- func BinaryHash(o interface{}) []byte
- func BinaryRipemd160(o interface{}) []byte
- func BinarySha256(o interface{}) []byte
- func ByteSliceSize(bz []byte) int
- func BytesCodecComparator(o1 interface{}, o2 interface{}) int
- func BytesCodecDecoder(r io.Reader, n *int, err *error) (o interface{})
- func BytesCodecEncoder(o interface{}, w io.Writer, n *int, err *error)
- func GetBool(buf []byte) (bool, error)
- func GetByteSlice(buf []byte) (bz []byte, n int, err error)
- func GetInt16(buf []byte) int16
- func GetInt32(buf []byte) int32
- func GetInt64(buf []byte) int64
- func GetString(buf []byte) (s string, n int, err error)
- func GetTypeFromStructDeclaration(o interface{}) reflect.Type
- func GetUint16(buf []byte) uint16
- func GetUint32(buf []byte) uint32
- func GetUint64(buf []byte) uint64
- func GetUvarint(buf []byte) (i uint, n int, err error)
- func GetVarint(buf []byte) (i int, n int, err error)
- func JSONBytes(o interface{}) []byte
- func JSONBytesPretty(o interface{}) []byte
- func PutBool(buf []byte, b bool)
- func PutByteSlice(buf []byte, bz []byte) (n int, err error)
- func PutInt16(buf []byte, i int16)
- func PutInt32(buf []byte, i int32)
- func PutInt64(buf []byte, i int64)
- func PutString(buf []byte, s string) (n int, err error)
- func PutUint16(buf []byte, i uint16)
- func PutUint32(buf []byte, i uint32)
- func PutUint64(buf []byte, i uint64)
- func PutUvarint(buf []byte, i uint) (n int, err error)
- func PutVarint(buf []byte, i int) (n int, err error)
- func ReadBinary(o interface{}, r io.Reader, lmt int, n *int, err *error) (res interface{})
- func ReadBinaryBytes(d []byte, o interface{}) error
- func ReadBinaryPtr(o interface{}, r io.Reader, lmt int, n *int, err *error) (res interface{})
- func ReadBinaryPtrLengthPrefixed(o interface{}, r io.Reader, lmt int, n *int, err *error) (res interface{})
- func ReadBool(r io.Reader, n *int, err *error) bool
- func ReadByte(r io.Reader, n *int, err *error) byte
- func ReadByteSlice(r io.Reader, lmt int, n *int, err *error) []byte
- func ReadByteSlices(r io.Reader, lmt int, n *int, err *error) [][]byte
- func ReadFloat32(r io.Reader, n *int, err *error) float32
- func ReadFloat64(r io.Reader, n *int, err *error) float64
- func ReadFull(buf []byte, r io.Reader, n *int, err *error)
- func ReadInt16(r io.Reader, n *int, err *error) int16
- func ReadInt32(r io.Reader, n *int, err *error) int32
- func ReadInt64(r io.Reader, n *int, err *error) int64
- func ReadInt8(r io.Reader, n *int, err *error) int8
- func ReadJSON(o interface{}, bytes []byte, err *error) interface{}
- func ReadJSONBytes(d []byte, o interface{}) (err error)
- func ReadJSONObject(o interface{}, object interface{}, err *error) interface{}
- func ReadJSONObjectPtr(o interface{}, object interface{}, err *error) interface{}
- func ReadJSONPtr(o interface{}, bytes []byte, err *error) interface{}
- func ReadString(r io.Reader, lmt int, n *int, err *error) string
- func ReadTime(r io.Reader, n *int, err *error) time.Time
- func ReadUint16(r io.Reader, n *int, err *error) uint16
- func ReadUint16s(r io.Reader, n *int, err *error) []uint16
- func ReadUint32(r io.Reader, n *int, err *error) uint32
- func ReadUint64(r io.Reader, n *int, err *error) uint64
- func ReadUint8(r io.Reader, n *int, err *error) uint8
- func ReadUvarint(r io.Reader, n *int, err *error) uint
- func ReadVarint(r io.Reader, n *int, err *error) int
- func UvarintSize(i uint64) int
- func WriteBinary(o interface{}, w io.Writer, n *int, err *error)
- func WriteBinaryLengthPrefixed(o interface{}, w io.Writer, n *int, err *error)
- func WriteBool(b bool, w io.Writer, n *int, err *error)
- func WriteByte(b byte, w io.Writer, n *int, err *error)
- func WriteByteSlice(bz []byte, w io.Writer, n *int, err *error)
- func WriteByteSlices(bzz [][]byte, w io.Writer, n *int, err *error)
- func WriteFloat32(f float32, w io.Writer, n *int, err *error)
- func WriteFloat64(f float64, w io.Writer, n *int, err *error)
- func WriteInt16(i int16, w io.Writer, n *int, err *error)
- func WriteInt32(i int32, w io.Writer, n *int, err *error)
- func WriteInt64(i int64, w io.Writer, n *int, err *error)
- func WriteInt8(i int8, w io.Writer, n *int, err *error)
- func WriteJSON(o interface{}, w io.Writer, n *int, err *error)
- func WriteString(s string, w io.Writer, n *int, err *error)
- func WriteTime(t time.Time, w io.Writer, n *int, err *error)
- func WriteTo(bz []byte, w io.Writer, n *int, err *error)
- func WriteUint16(i uint16, w io.Writer, n *int, err *error)
- func WriteUint16s(iz []uint16, w io.Writer, n *int, err *error)
- func WriteUint32(i uint32, w io.Writer, n *int, err *error)
- func WriteUint64(i uint64, w io.Writer, n *int, err *error)
- func WriteUint8(i uint8, w io.Writer, n *int, err *error)
- func WriteUvarint(i uint, w io.Writer, n *int, err *error)
- func WriteVarint(i int, w io.Writer, n *int, err *error)
- type Codec
- type Comparator
- type ConcreteType
- type Decoder
- type Encoder
- type Options
- type StructFieldInfo
- type TypeInfo
Constants ¶
View Source
const (
ReadSliceChunkSize = 1024
)
View Source
const Version = "0.6.0"
Variables ¶
View Source
var BasicCodec = Codec{ Encode: BasicCodecEncoder, Decode: BasicCodecDecoder, Compare: BasicCodecComparator, }
View Source
var BytesCodec = Codec{ Encode: BytesCodecEncoder, Decode: BytesCodecDecoder, Compare: BytesCodecComparator, }
View Source
var ErrBinaryReadInvalidLength = errors.New("Error: binary read invalid length")
View Source
var ErrBinaryReadOverflow = errors.New("Error: binary read overflow")
View Source
var ErrBinaryWriteOverflow = errors.New("Error: binary write overflow")
Functions ¶
func BasicCodecComparator ¶
func BasicCodecComparator(o1 interface{}, o2 interface{}) int
Contract: Caller must ensure that types match.
func BinaryBytes ¶
func BinaryBytes(o interface{}) []byte
func BinaryCompare ¶
func BinaryCompare(a, b interface{}) int
NOTE: does not care about the type, only the binary representation.
func BinaryEqual ¶
func BinaryEqual(a, b interface{}) bool
NOTE: does not care about the type, only the binary representation.
func BinaryHash ¶
func BinaryHash(o interface{}) []byte
func BinaryRipemd160 ¶
func BinaryRipemd160(o interface{}) []byte
NOTE: The default hash function is Ripemd160.
func BinarySha256 ¶
func BinarySha256(o interface{}) []byte
NOTE: only use this if you need 32 bytes.
func ByteSliceSize ¶
Returns the total encoded size of a byteslice
func BytesCodecComparator ¶
func BytesCodecComparator(o1 interface{}, o2 interface{}) int
func GetTypeFromStructDeclaration ¶
e.g. If o is struct{Foo}{}, return is the Foo reflection type.
func ReadBinary ¶
func ReadBinaryBytes ¶
o: a pointer to the object to be filled
func ReadBinaryPtr ¶
func ReadJSONBytes ¶
o: a pointer to the object to be filled
func ReadJSONObject ¶
func ReadJSONObject(o interface{}, object interface{}, err *error) interface{}
o is the ultimate destination, object is the result of json unmarshal
func ReadJSONObjectPtr ¶
func ReadJSONObjectPtr(o interface{}, object interface{}, err *error) interface{}
func ReadJSONPtr ¶
func UvarintSize ¶
Types ¶
type Codec ¶
type Codec struct { Encode Encoder Decode Decoder Compare Comparator }
type Comparator ¶
type Comparator func(o1 interface{}, o2 interface{}) int
type ConcreteType ¶
type ConcreteType struct { O interface{} Byte byte }
For use with the RegisterInterface declaration
type Options ¶
type Options struct { JSONName string // (JSON) Corresponding JSON field name. (override with `json=""`) JSONOmitEmpty bool // (JSON) Omit field if value is empty Varint bool // (Binary) Use length-prefixed encoding for (u)int64 Unsafe bool // (JSON/Binary) Explicitly enable support for floats or maps ZeroValue interface{} // Prototype zero object }
type StructFieldInfo ¶
type TypeInfo ¶
type TypeInfo struct { Type reflect.Type // The type // If Type is kind reflect.Interface, is registered IsRegisteredInterface bool ByteToType map[byte]reflect.Type TypeToByte map[reflect.Type]byte // If Type is kind reflect.Struct Fields []StructFieldInfo Unwrap bool // if struct has only one field and its an anonymous interface }
func GetTypeInfo ¶
func MakeTypeInfo ¶
func RegisterInterface ¶
func RegisterInterface(o interface{}, ctypes ...ConcreteType) *TypeInfo
Must use this to register an interface to properly decode the underlying concrete type.
Source Files ¶
Click to show internal directories.
Click to hide internal directories.