package msgpack
Import Path
github.com/vmihailenco/msgpack/v5 (on go.dev )
Dependency Relation
imports 18 packages , and imported by one package
Code Examples
CustomEncoder
package main
import (
"fmt"
"github.com/vmihailenco/msgpack/v5"
)
type customStruct struct {
S string
N int
}
var _ msgpack.CustomEncoder = (*customStruct)(nil)
var _ msgpack.CustomDecoder = (*customStruct)(nil)
func (s *customStruct) EncodeMsgpack(enc *msgpack.Encoder) error {
return enc.EncodeMulti(s.S, s.N)
}
func (s *customStruct) DecodeMsgpack(dec *msgpack.Decoder) error {
return dec.DecodeMulti(&s.S, &s.N)
}
func main() {
b, err := msgpack.Marshal(&customStruct{S: "hello", N: 42})
if err != nil {
panic(err)
}
var v customStruct
err = msgpack.Unmarshal(b, &v)
if err != nil {
panic(err)
}
fmt.Printf("%#v", v)
}
Decoder_Query
{
b, err := msgpack.Marshal([]map[string]interface{}{
{"id": 1, "attrs": map[string]interface{}{"phone": 12345}},
{"id": 2, "attrs": map[string]interface{}{"phone": 54321}},
})
if err != nil {
panic(err)
}
dec := msgpack.NewDecoder(bytes.NewBuffer(b))
values, err := dec.Query("*.attrs.phone")
if err != nil {
panic(err)
}
fmt.Println("phones are", values)
dec.Reset(bytes.NewBuffer(b))
values, err = dec.Query("1.attrs.phone")
if err != nil {
panic(err)
}
fmt.Println("2nd phone is", values[0])
}
Decoder_SetMapDecoder
{
buf := new(bytes.Buffer)
enc := msgpack.NewEncoder(buf)
in := map[string]string{"hello": "world"}
err := enc.Encode(in)
if err != nil {
panic(err)
}
dec := msgpack.NewDecoder(buf)
dec.SetMapDecoder(func(d *msgpack.Decoder) (interface{}, error) {
n, err := d.DecodeMapLen()
if err != nil {
return nil, err
}
m := make(map[string]string, n)
for i := 0; i < n; i++ {
mk, err := d.DecodeString()
if err != nil {
return nil, err
}
mv, err := d.DecodeString()
if err != nil {
return nil, err
}
m[mk] = mv
}
return m, nil
})
out, err := dec.DecodeInterface()
if err != nil {
panic(err)
}
fmt.Printf("%#v", out)
}
Encoder_UseArrayEncodedStructs
{
type Item struct {
Foo string
Bar string
}
var buf bytes.Buffer
enc := msgpack.NewEncoder(&buf)
enc.UseArrayEncodedStructs(true)
err := enc.Encode(&Item{Foo: "foo", Bar: "bar"})
if err != nil {
panic(err)
}
dec := msgpack.NewDecoder(&buf)
v, err := dec.DecodeInterface()
if err != nil {
panic(err)
}
fmt.Println(v)
}
Marshal
{
type Item struct {
Foo string
}
b, err := msgpack.Marshal(&Item{Foo: "bar"})
if err != nil {
panic(err)
}
var item Item
err = msgpack.Unmarshal(b, &item)
if err != nil {
panic(err)
}
fmt.Println(item.Foo)
}
Marshal_asArray
{
type Item struct {
_msgpack struct{} `msgpack:",as_array"`
Foo string
Bar string
}
var buf bytes.Buffer
enc := msgpack.NewEncoder(&buf)
err := enc.Encode(&Item{Foo: "foo", Bar: "bar"})
if err != nil {
panic(err)
}
dec := msgpack.NewDecoder(&buf)
v, err := dec.DecodeInterface()
if err != nil {
panic(err)
}
fmt.Println(v)
}
Marshal_escapedNames
{
og := map[string]interface{}{
"something:special": uint(123),
"hello, world": "hello!",
}
raw, err := msgpack.Marshal(og)
if err != nil {
panic(err)
}
type Item struct {
SomethingSpecial uint `msgpack:"'something:special'"`
HelloWorld string `msgpack:"'hello, world'"`
}
var item Item
if err := msgpack.Unmarshal(raw, &item); err != nil {
panic(err)
}
fmt.Printf("%#v\n", item)
}
Marshal_mapStringInterface
{
in := map[string]interface{}{"foo": 1, "hello": "world"}
b, err := msgpack.Marshal(in)
if err != nil {
panic(err)
}
var out map[string]interface{}
err = msgpack.Unmarshal(b, &out)
if err != nil {
panic(err)
}
fmt.Println("foo =", out["foo"])
fmt.Println("hello =", out["hello"])
}
Marshal_omitEmpty
{
type Item struct {
Foo string
Bar string
}
item := &Item{
Foo: "hello",
}
b, err := msgpack.Marshal(item)
if err != nil {
panic(err)
}
fmt.Printf("item: %q\n", b)
type ItemOmitEmpty struct {
_msgpack struct{} `msgpack:",omitempty"`
Foo string
Bar string
}
itemOmitEmpty := &ItemOmitEmpty{
Foo: "hello",
}
b, err = msgpack.Marshal(itemOmitEmpty)
if err != nil {
panic(err)
}
fmt.Printf("item2: %q\n", b)
}
RegisterExt
{
t := time.Unix(123456789, 123)
{
msgpack.RegisterExt(1, (*EventTime)(nil))
b, err := msgpack.Marshal(&EventTime{t})
if err != nil {
panic(err)
}
var v interface{}
err = msgpack.Unmarshal(b, &v)
if err != nil {
panic(err)
}
fmt.Println(v.(*EventTime).UTC())
tm := new(EventTime)
err = msgpack.Unmarshal(b, &tm)
if err != nil {
panic(err)
}
fmt.Println(tm.UTC())
}
{
msgpack.RegisterExt(1, (*EventTime)(nil))
b, err := msgpack.Marshal(&EventTime{t})
if err != nil {
panic(err)
}
msgpack.RegisterExt(1, (*OneMoreSecondEventTime)(nil))
var v interface{}
err = msgpack.Unmarshal(b, &v)
if err != nil {
panic(err)
}
fmt.Println(v.(*OneMoreSecondEventTime).UTC())
}
{
msgpack.RegisterExt(1, (*OneMoreSecondEventTime)(nil))
b, err := msgpack.Marshal(&OneMoreSecondEventTime{
EventTime{t},
})
if err != nil {
panic(err)
}
msgpack.RegisterExt(1, (*EventTime)(nil))
var v interface{}
err = msgpack.Unmarshal(b, &v)
if err != nil {
panic(err)
}
fmt.Println(v.(*EventTime).UTC())
}
}
UnregisterExt
{
t := time.Unix(123456789, 123)
{
msgpack.RegisterExt(1, (*EventTime)(nil))
b, err := msgpack.Marshal(&EventTime{t})
if err != nil {
panic(err)
}
msgpack.UnregisterExt(1)
var v interface{}
err = msgpack.Unmarshal(b, &v)
wanted := "msgpack: unknown ext id=1"
if err.Error() != wanted {
panic(err)
}
msgpack.RegisterExt(1, (*OneMoreSecondEventTime)(nil))
err = msgpack.Unmarshal(b, &v)
if err != nil {
panic(err)
}
fmt.Println(v.(*OneMoreSecondEventTime).UTC())
}
{
msgpack.RegisterExt(1, (*OneMoreSecondEventTime)(nil))
b, err := msgpack.Marshal(&OneMoreSecondEventTime{
EventTime{t},
})
if err != nil {
panic(err)
}
msgpack.UnregisterExt(1)
var v interface{}
err = msgpack.Unmarshal(b, &v)
wanted := "msgpack: unknown ext id=1"
if err.Error() != wanted {
panic(err)
}
msgpack.RegisterExt(1, (*EventTime)(nil))
err = msgpack.Unmarshal(b, &v)
if err != nil {
panic(err)
}
fmt.Println(v.(*EventTime).UTC())
}
}
Package-Level Type Names (total 21, in which 8 are exported)
/* sort exporteds by: alphabet | popularity */
type Decoder (struct)
A Decoder reads and decodes MessagePack values from an input stream.
Fields (total 8, none are exported )
/* 8 unexporteds ... */ /* 8 unexporteds: */
buf []byte
dict []string
flags uint32
mapDecoder func(*Decoder ) (interface{}, error )
r io .Reader
rec []byte
// accumulates read data if not nil
s io .ByteScanner
structTag string
Methods (total 100, in which 45 are exported )
(*Decoder) Buffered () io .Reader
Buffered returns a reader of the data remaining in the Decoder's buffer.
The reader is valid until the next call to Decode.
(*Decoder) Decode (v interface{}) error
(*Decoder) DecodeArrayLen () (int , error )
DecodeArrayLen decodes array length. Length is -1 when array is nil.
(*Decoder) DecodeBool () (bool , error )
(*Decoder) DecodeBytes () ([]byte , error )
(*Decoder) DecodeBytesLen () (int , error )
(*Decoder) DecodeDuration () (time .Duration , error )
(*Decoder) DecodeExtHeader () (extID int8 , extLen int , err error )
(*Decoder) DecodeFloat32 () (float32 , error )
(*Decoder) DecodeFloat64 () (float64 , error )
DecodeFloat64 decodes msgpack float32/64 into Go float64.
(*Decoder) DecodeInt () (int , error )
(*Decoder) DecodeInt16 () (int16 , error )
(*Decoder) DecodeInt32 () (int32 , error )
(*Decoder) DecodeInt64 () (int64 , error )
DecodeInt64 decodes msgpack int8/16/32/64 and uint8/16/32/64
into Go int64.
(*Decoder) DecodeInt8 () (int8 , error )
(*Decoder) DecodeInterface () (interface{}, error )
DecodeInterface decodes value into interface. It returns following types:
- nil,
- bool,
- int8, int16, int32, int64,
- uint8, uint16, uint32, uint64,
- float32 and float64,
- string,
- []byte,
- slices of any of the above,
- maps of any of the above.
DecodeInterface should be used only when you don't know the type of value
you are decoding. For example, if you are decoding number it is better to use
DecodeInt64 for negative numbers and DecodeUint64 for positive numbers.
(*Decoder) DecodeInterfaceLoose () (interface{}, error )
DecodeInterfaceLoose is like DecodeInterface except that:
- int8, int16, and int32 are converted to int64,
- uint8, uint16, and uint32 are converted to uint64,
- float32 is converted to float64.
- []byte is converted to string.
(*Decoder) DecodeMap () (map[string ]interface{}, error )
(*Decoder) DecodeMapLen () (int , error )
DecodeMapLen decodes map length. Length is -1 when map is nil.
(*Decoder) DecodeMulti (v ...interface{}) error
(*Decoder) DecodeNil () error
(*Decoder) DecodeRaw () (RawMessage , error )
(*Decoder) DecodeSlice () ([]interface{}, error )
(*Decoder) DecodeString () (string , error )
(*Decoder) DecodeTime () (time .Time , error )
(*Decoder) DecodeTypedMap () (interface{}, error )
DecodeTypedMap decodes a typed map. Typed map is a map that has a fixed type for keys and values.
Key and value types may be different.
(*Decoder) DecodeUint () (uint , error )
(*Decoder) DecodeUint16 () (uint16 , error )
(*Decoder) DecodeUint32 () (uint32 , error )
(*Decoder) DecodeUint64 () (uint64 , error )
DecodeUint64 decodes msgpack int8/16/32/64 and uint8/16/32/64
into Go uint64.
(*Decoder) DecodeUint8 () (uint8 , error )
(*Decoder) DecodeUntypedMap () (map[interface{}]interface{}, error )
(*Decoder) DecodeValue (v reflect .Value ) error
(*Decoder) DisallowUnknownFields (on bool )
DisallowUnknownFields causes the Decoder to return an error when the destination
is a struct and the input contains object keys which do not match any
non-ignored, exported fields in the destination.
(*Decoder) PeekCode () (byte , error )
PeekCode returns the next MessagePack code without advancing the reader.
Subpackage msgpack/codes defines the list of available msgpcode.
(*Decoder) Query (query string ) ([]interface{}, error )
Query extracts data specified by the query from the msgpack stream skipping
any other data. Query consists of map keys and array indexes separated with dot,
e.g. key1.0.key2.
(*Decoder) ReadFull (buf []byte ) error
ReadFull reads exactly len(buf) bytes into the buf.
(*Decoder) Reset (r io .Reader )
Reset discards any buffered data, resets all state, and switches the buffered
reader to read from r.
(*Decoder) ResetDict (r io .Reader , dict []string )
ResetDict is like Reset, but also resets the dict.
(*Decoder) SetCustomStructTag (tag string )
SetCustomStructTag causes the decoder to use the supplied tag as a fallback option
if there is no msgpack tag.
(*Decoder) SetMapDecoder (fn func(*Decoder ) (interface{}, error ))
(*Decoder) Skip () error
Skip skips next value.
(*Decoder) UseInternedStrings (on bool )
UseInternedStrings enables support for decoding interned strings.
(*Decoder) UseLooseInterfaceDecoding (on bool )
UseLooseInterfaceDecoding causes decoder to use DecodeInterfaceLoose
to decode msgpack value into Go interface{}.
(*Decoder) WithDict (dict []string , fn func(*Decoder ) error ) error
/* 55 unexporteds ... */ /* 55 unexporteds: */
(*Decoder) arrayLen (c byte ) (int , error )
(*Decoder) bool (c byte ) (bool , error )
(*Decoder) bytes (c byte , b []byte ) ([]byte , error )
(*Decoder) bytesLen (c byte ) (int , error )
(*Decoder) bytesPtr (c byte , ptr *[]byte ) error
(*Decoder) decodeBytesPtr (ptr *[]byte ) error
(*Decoder) decodeInterfaceCond () (interface{}, error )
(*Decoder) decodeInterfaceExt (c byte ) (interface{}, error )
(*Decoder) decodeInternedString (intern bool ) (string , error )
(*Decoder) decodeInternedStringIndex (extLen int ) (int , error )
(*Decoder) decodeInternedStringWithLen (n int , intern bool ) (string , error )
(*Decoder) decodeMapDefault () (interface{}, error )
(*Decoder) decodeMapStringInterfacePtr (ptr *map[string ]interface{}) error
(*Decoder) decodeMapStringStringPtr (ptr *map[string ]string ) error
(*Decoder) decodeNilValue (v reflect .Value ) error
(*Decoder) decodeSlice (c byte ) ([]interface{}, error )
(*Decoder) decodeStringSlicePtr (ptr *[]string ) error
(*Decoder) decodeStringTemp () (string , error )
(*Decoder) decodeStruct (v reflect .Value , n int ) error
(*Decoder) decodeTime (extLen int ) (time .Time , error )
(*Decoder) decodeTypedMapValue (v reflect .Value , n int ) error
(*Decoder) extHeader (c byte ) (int8 , int , error )
(*Decoder) float32 (c byte ) (float32 , error )
(*Decoder) float64 (c byte ) (float64 , error )
(*Decoder) hasNilCode () bool
(*Decoder) int (c byte ) (int64 , error )
(*Decoder) int16 () (int16 , error )
(*Decoder) int32 () (int32 , error )
(*Decoder) int64 () (int64 , error )
(*Decoder) int8 () (int8 , error )
(*Decoder) interfaceValue (v reflect .Value ) error
(*Decoder) internedStringAtIndex (idx int ) (string , error )
(*Decoder) mapLen (c byte ) (int , error )
(*Decoder) parseExtLen (c byte ) (int , error )
(*Decoder) query (q *queryResult ) error
(*Decoder) queryArrayIndex (q *queryResult ) error
(*Decoder) queryMapKey (q *queryResult ) error
(*Decoder) readCode () (byte , error )
(*Decoder) readFull (b []byte ) error
(*Decoder) readN (n int ) ([]byte , error )
(*Decoder) resetReader (r io .Reader )
(*Decoder) skipBytes (c byte ) error
(*Decoder) skipExt (c byte ) error
(*Decoder) skipExtHeader (c byte ) error
(*Decoder) skipMap (c byte ) error
(*Decoder) skipN (n int ) error
(*Decoder) skipNext (n int ) error
(*Decoder) skipSlice (c byte ) error
(*Decoder) string (c byte ) (string , error )
(*Decoder) stringWithLen (n int ) (string , error )
(*Decoder) uint (c byte ) (uint64 , error )
(*Decoder) uint16 () (uint16 , error )
(*Decoder) uint32 () (uint32 , error )
(*Decoder) uint64 () (uint64 , error )
(*Decoder) uint8 () (uint8 , error )
As Outputs Of (at least 2, both are exported )
func GetDecoder () *Decoder
func NewDecoder (r io .Reader ) *Decoder
As Inputs Of (at least 28, in which 3 are exported )
func PutDecoder (dec *Decoder )
func CustomDecoder .DecodeMsgpack (*Decoder ) error
func (*RawMessage ).DecodeMsgpack (dec *Decoder ) error
/* 25+ unexporteds ... */ /* 25+ unexporteds: */
func decodeArrayValue (d *Decoder , v reflect .Value ) error
func decodeBoolValue (d *Decoder , v reflect .Value ) error
func decodeByteArrayValue (d *Decoder , v reflect .Value ) error
func decodeBytesValue (d *Decoder , v reflect .Value ) error
func decodeCustomValue (d *Decoder , v reflect .Value ) error
func decodeFloat32Value (d *Decoder , v reflect .Value ) error
func decodeFloat64Value (d *Decoder , v reflect .Value ) error
func decodeInt64Value (d *Decoder , v reflect .Value ) error
func decodeInterfaceValue (d *Decoder , v reflect .Value ) error
func decodeInternedInterfaceValue (d *Decoder , v reflect .Value ) error
func decodeInternedStringExt (d *Decoder , v reflect .Value , extLen int ) error
func decodeInternedStringValue (d *Decoder , v reflect .Value ) error
func decodeMapStringInterfaceValue (d *Decoder , v reflect .Value ) error
func decodeMapStringStringValue (d *Decoder , v reflect .Value ) error
func decodeMapValue (d *Decoder , v reflect .Value ) error
func decodeSliceValue (d *Decoder , v reflect .Value ) error
func decodeStringSliceValue (d *Decoder , v reflect .Value ) error
func decodeStringValue (d *Decoder , v reflect .Value ) error
func decodeStructValue (d *Decoder , v reflect .Value ) error
func decodeUint64Value (d *Decoder , v reflect .Value ) error
func decodeUnsupportedValue (d *Decoder , v reflect .Value ) error
func timeDecoder (d *Decoder , v reflect .Value , extLen int ) error
func unmarshalBinaryValue (d *Decoder , v reflect .Value ) error
func unmarshalTextValue (d *Decoder , v reflect .Value ) error
func unmarshalValue (d *Decoder , v reflect .Value ) error
type Encoder (struct)
Fields (total 6, none are exported )
/* 6 unexporteds ... */ /* 6 unexporteds: */
buf []byte
dict map[string ]int
flags uint32
structTag string
timeBuf []byte
w writer
Methods (total 62, in which 38 are exported )
(*Encoder) Encode (v interface{}) error
(*Encoder) EncodeArrayLen (l int ) error
(*Encoder) EncodeBool (value bool ) error
(*Encoder) EncodeBytes (v []byte ) error
(*Encoder) EncodeBytesLen (l int ) error
(*Encoder) EncodeDuration (d time .Duration ) error
(*Encoder) EncodeExtHeader (extID int8 , extLen int ) error
(*Encoder) EncodeFloat32 (n float32 ) error
(*Encoder) EncodeFloat64 (n float64 ) error
(*Encoder) EncodeInt (n int64 ) error
EncodeNumber encodes an int64 in 1, 2, 3, 5, or 9 bytes.
Type of the number is lost during encoding.
(*Encoder) EncodeInt16 (n int16 ) error
EncodeInt16 encodes an int16 in 3 bytes preserving type of the number.
(*Encoder) EncodeInt32 (n int32 ) error
EncodeInt32 encodes an int32 in 5 bytes preserving type of the number.
(*Encoder) EncodeInt64 (n int64 ) error
EncodeInt64 encodes an int64 in 9 bytes preserving type of the number.
(*Encoder) EncodeInt8 (n int8 ) error
EncodeInt8 encodes an int8 in 2 bytes preserving type of the number.
(*Encoder) EncodeMap (m map[string ]interface{}) error
(*Encoder) EncodeMapLen (l int ) error
(*Encoder) EncodeMapSorted (m map[string ]interface{}) error
(*Encoder) EncodeMulti (v ...interface{}) error
(*Encoder) EncodeNil () error
(*Encoder) EncodeString (v string ) error
(*Encoder) EncodeTime (tm time .Time ) error
(*Encoder) EncodeUint (n uint64 ) error
EncodeUnsignedNumber encodes an uint64 in 1, 2, 3, 5, or 9 bytes.
Type of the number is lost during encoding.
(*Encoder) EncodeUint16 (n uint16 ) error
EncodeUint16 encodes an uint16 in 3 bytes preserving type of the number.
(*Encoder) EncodeUint32 (n uint32 ) error
EncodeUint32 encodes an uint16 in 5 bytes preserving type of the number.
(*Encoder) EncodeUint64 (n uint64 ) error
EncodeUint64 encodes an uint16 in 9 bytes preserving type of the number.
(*Encoder) EncodeUint8 (n uint8 ) error
EncodeUint8 encodes an uint8 in 2 bytes preserving type of the number.
(*Encoder) EncodeValue (v reflect .Value ) error
(*Encoder) Reset (w io .Writer )
Reset discards any buffered data, resets all state, and switches the writer to write to w.
(*Encoder) ResetDict (w io .Writer , dict map[string ]int )
ResetDict is like Reset, but also resets the dict.
(*Encoder) SetCustomStructTag (tag string )
SetCustomStructTag causes the Encoder to use a custom struct tag as
fallback option if there is no msgpack tag.
(*Encoder) SetOmitEmpty (on bool )
SetOmitEmpty causes the Encoder to omit empty values by default.
(*Encoder) SetSortMapKeys (on bool ) *Encoder
SetSortMapKeys causes the Encoder to encode map keys in increasing order.
Supported map types are:
- map[string]string
- map[string]interface{}
(*Encoder) UseArrayEncodedStructs (on bool )
UseArrayEncodedStructs causes the Encoder to encode Go structs as msgpack arrays.
(*Encoder) UseCompactFloats (on bool )
UseCompactFloats causes the Encoder to chose a compact integer encoding
for floats that can be represented as integers.
(*Encoder) UseCompactInts (on bool )
UseCompactEncoding causes the Encoder to chose the most compact encoding.
For example, it allows to encode small Go int64 as msgpack int8 saving 7 bytes.
(*Encoder) UseInternedStrings (on bool )
UseInternedStrings causes the Encoder to intern strings.
(*Encoder) WithDict (dict map[string ]int , fn func(*Encoder ) error ) error
(*Encoder) Writer () io .Writer
Writer returns the Encoder's writer.
/* 24 unexporteds ... */ /* 24 unexporteds: */
(*Encoder) encodeExtLen (l int ) error
(*Encoder) encodeInt16Cond (n int16 ) error
(*Encoder) encodeInt32Cond (n int32 ) error
(*Encoder) encodeInt64Cond (n int64 ) error
(*Encoder) encodeInt8Cond (n int8 ) error
(*Encoder) encodeInternedString (s string , intern bool ) error
(*Encoder) encodeInternedStringIndex (idx int ) error
(*Encoder) encodeNormalString (v string ) error
(*Encoder) encodeSortedMapStringString (m map[string ]string ) error
(*Encoder) encodeStringLen (l int ) error
(*Encoder) encodeStringSlice (s []string ) error
(*Encoder) encodeTime (tm time .Time ) []byte
(*Encoder) encodeUint16Cond (n uint16 ) error
(*Encoder) encodeUint32Cond (n uint32 ) error
(*Encoder) encodeUint64Cond (n uint64 ) error
(*Encoder) encodeUint8Cond (n uint8 ) error
(*Encoder) resetWriter (w io .Writer )
(*Encoder) write (b []byte ) error
(*Encoder) write1 (code byte , n uint8 ) error
(*Encoder) write2 (code byte , n uint16 ) error
(*Encoder) write4 (code byte , n uint32 ) error
(*Encoder) write8 (code byte , n uint64 ) error
(*Encoder) writeCode (c byte ) error
(*Encoder) writeString (s string ) error
Implements (at least 2, both are exported )
*Encoder : github.com/go-pg/pg/v10/pgjson.Encoder
*Encoder : go.uber.org/zap/zapcore.ReflectedEncoder
As Outputs Of (at least 3, all are exported )
func GetEncoder () *Encoder
func NewEncoder (w io .Writer ) *Encoder
func (*Encoder).SetSortMapKeys (on bool ) *Encoder
As Inputs Of (at least 41, in which 3 are exported )
func PutEncoder (enc *Encoder )
func CustomEncoder .EncodeMsgpack (*Encoder ) error
func RawMessage .EncodeMsgpack (enc *Encoder ) error
/* 38+ unexporteds ... */ /* 38+ unexporteds: */
func encodeArrayValue (e *Encoder , v reflect .Value ) error
func encodeBoolValue (e *Encoder , v reflect .Value ) error
func encodeByteArrayValue (e *Encoder , v reflect .Value ) error
func encodeByteSliceValue (e *Encoder , v reflect .Value ) error
func encodeCustomValue (e *Encoder , v reflect .Value ) error
func encodeCustomValuePtr (e *Encoder , v reflect .Value ) error
func encodeErrorValue (e *Encoder , v reflect .Value ) error
func encodeFloat32Value (e *Encoder , v reflect .Value ) error
func encodeFloat64Value (e *Encoder , v reflect .Value ) error
func encodeInt16CondValue (e *Encoder , v reflect .Value ) error
func encodeInt32CondValue (e *Encoder , v reflect .Value ) error
func encodeInt64CondValue (e *Encoder , v reflect .Value ) error
func encodeInt8CondValue (e *Encoder , v reflect .Value ) error
func encodeInterfaceValue (e *Encoder , v reflect .Value ) error
func encodeInternedInterfaceValue (e *Encoder , v reflect .Value ) error
func encodeInternedStringValue (e *Encoder , v reflect .Value ) error
func encodeIntValue (e *Encoder , v reflect .Value ) error
func encodeMapStringInterfaceValue (e *Encoder , v reflect .Value ) error
func encodeMapStringStringValue (e *Encoder , v reflect .Value ) error
func encodeMapValue (e *Encoder , v reflect .Value ) error
func encodeSliceValue (e *Encoder , v reflect .Value ) error
func encodeStringSliceValue (e *Encoder , v reflect .Value ) error
func encodeStringValue (e *Encoder , v reflect .Value ) error
func encodeStructValue (e *Encoder , strct reflect .Value ) error
func encodeStructValueAsArray (e *Encoder , strct reflect .Value , fields []*field ) error
func encodeUint16CondValue (e *Encoder , v reflect .Value ) error
func encodeUint32CondValue (e *Encoder , v reflect .Value ) error
func encodeUint64CondValue (e *Encoder , v reflect .Value ) error
func encodeUint8CondValue (e *Encoder , v reflect .Value ) error
func encodeUintValue (e *Encoder , v reflect .Value ) error
func encodeUnsupportedValue (e *Encoder , v reflect .Value ) error
func marshalBinaryValue (e *Encoder , v reflect .Value ) error
func marshalBinaryValueAddr (e *Encoder , v reflect .Value ) error
func marshalTextValue (e *Encoder , v reflect .Value ) error
func marshalTextValueAddr (e *Encoder , v reflect .Value ) error
func marshalValue (e *Encoder , v reflect .Value ) error
func marshalValuePtr (e *Encoder , v reflect .Value ) error
func timeEncoder (e *Encoder , v reflect .Value ) ([]byte , error )
/* 13 unexporteds ... */ /* 13 unexporteds: */ type decoderFunc (func)
As Outputs Of (at least 7, none are exported )
/* 7+ unexporteds ... */ /* 7+ unexporteds: */
func _getDecoder (typ reflect .Type ) decoderFunc
func addrDecoder (fn decoderFunc ) decoderFunc
func getDecoder (typ reflect .Type ) decoderFunc
func makeExtDecoder (wantedExtID int8 , typ reflect .Type , decoder func(d *Decoder , v reflect .Value , extLen int ) error ) decoderFunc
func makeExtDecoderAddr (extDecoder decoderFunc ) decoderFunc
func nilAwareDecoder (typ reflect .Type , fn decoderFunc ) decoderFunc
func ptrValueDecoder (typ reflect .Type ) decoderFunc
As Inputs Of (at least 4, in which 1 are exported )
func Register (value interface{}, enc encoderFunc , dec decoderFunc )
/* 3+ unexporteds ... */ /* 3+ unexporteds: */
func addrDecoder (fn decoderFunc ) decoderFunc
func makeExtDecoderAddr (extDecoder decoderFunc ) decoderFunc
func nilAwareDecoder (typ reflect .Type , fn decoderFunc ) decoderFunc
type field (struct)
Fields (total 5, none are exported )
/* 5 unexporteds ... */ /* 5 unexporteds: */
decoder decoderFunc
encoder encoderFunc
index []int
name string
omitEmpty bool
Methods (total 3, all are exported )
(*field) DecodeValue (d *Decoder , strct reflect .Value ) error
(*field) EncodeValue (e *Encoder , strct reflect .Value ) error
(*field) Omit (strct reflect .Value , forced bool ) bool
As Inputs Of (at least 3, none are exported )
/* 3+ unexporteds ... */ /* 3+ unexporteds: */
func encodeStructValueAsArray (e *Encoder , strct reflect .Value , fields []*field ) error
func inlineFields (fs *fields , typ reflect .Type , f *field , tag string )
func shouldInline (fs *fields , typ reflect .Type , f *field , tag string ) bool
type fields (struct)
Fields (total 5, in which 4 are exported )
AsArray bool
List []*field
Map map[string ]*field
Type reflect .Type
/* one unexported ... */ /* one unexported: */
hasOmitEmpty bool
Methods (total 3, in which 2 are exported )
(*fields) Add (field *field )
(*fields) OmitEmpty (strct reflect .Value , forced bool ) []*field
/* one unexported ... */ /* one unexported: */
(*fields) warnIfFieldExists (name string )
As Outputs Of (at least 2, neither is exported )
/* 2+ unexporteds ... */ /* 2+ unexporteds: */
func getFields (typ reflect .Type , fallbackTag string ) *fields
func newFields (typ reflect .Type ) *fields
As Inputs Of (at least 2, neither is exported )
/* 2+ unexporteds ... */ /* 2+ unexporteds: */
func inlineFields (fs *fields , typ reflect .Type , f *field , tag string )
func shouldInline (fs *fields , typ reflect .Type , f *field , tag string ) bool