Documentation
¶
Overview ¶
Package serialize provides unified interface for encoding and decoding data with several implementations (JSON, MsgPack, Gob, ..).
Example usage:
var err error
var byteCoder serialize.ByteCoder
byteCoder = &serialize.JSONCoder{}
byteCoder = &serialize.MsgPackCoder{}
type MyStruct struct {
A int
B string
}
dataToSerialize := MyStruct{A: 100, B: "hey"}
encodedBytes, err := byteCoder.Encode(dataToSerialize)
if err != nil {
fmt.Fprintf(os.Stderr, "serialization failed: %v\n", err)
os.Exit(1)
}
decodedData := MyStruct{}
err = byteCoder.Decode(encodedBytes, &decodedData)
if err != nil {
fmt.Fprintf(os.Stderr, "deserialization failed: %v\n", err)
os.Exit(1)
}
fmt.Printf(
"Original: %v\nSerialized: %v\nDecoded: %v\n",
dataToSerialize, encodedBytes, decodedData)
Will print out: Original: {100 hey} Serialized: [130 161 65 100 161 66 163 104 101 121] Decoded: {100 hey}
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ByteCoder ¶
type ByteCoder interface {
Encode(data interface{}) ([]byte, error)
Decode(data []byte, vPtr interface{}) error
}
ByteCoder interface for easy switch between serialization formats (JSON, MsgPack, ..)
type JSONCoder ¶
type JSONCoder struct{}
JSONCoder implements ByteCoder interface
type MsgPackCoder ¶
type MsgPackCoder struct{}
MsgPackCoder implements ByteCoder interface
func (*MsgPackCoder) Decode ¶
func (e *MsgPackCoder) Decode(data []byte, vPtr interface{}) error
Decode ..
func (*MsgPackCoder) Encode ¶
func (e *MsgPackCoder) Encode(v interface{}) ([]byte, error)
Encode ..
Click to show internal directories.
Click to hide internal directories.