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.