Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Bin = NewHandler( func(encoder Encoder, value reflect.Value) error { ptr := reflect.New(realType(value.Type())) ptr.Elem().Set(value) return encoder.Encode(ptr) }, func(decoder Decoder, value reflect.Value) error { ptr := reflect.New(realType(value.Type())) if err := decoder.Decode(ptr.Elem()); err != nil { return err } value.Set(ptr.Elem()) return nil }, )
View Source
var EncodingBinary = NewHandler( func(encoder Encoder, value reflect.Value) error { out := Call(value, "MarshalBinary") if !out[1].IsNil() { return out[1].Interface().(error) } return encoder.Encode(out[0].Interface().([]byte)) }, func(decoder Decoder, value reflect.Value) error { var data []byte if err := decoder.Decode(&data); err != nil { return err } if len(data) == 0 { return nil } out := Call(value, "UnmarshalBinary", reflect.ValueOf(data)) if !out[0].IsNil() { return out[0].Interface().(error) } return nil }, )
View Source
var EncodingText = NewHandler( func(encoder Encoder, value reflect.Value) error { out := Call(value, "MarshalText") if !out[1].IsNil() { return out[1].Interface().(error) } if err := encoder.Encode(out[0].Len()); err != nil { return err } return encoder.Encode(out[0].Interface().([]byte)) }, func(decoder Decoder, value reflect.Value) error { var data []byte if err := decoder.Decode(&data); err != nil { return err } out := Call(value, "UnmarshalText", reflect.ValueOf(data)) if !out[0].IsNil() { return out[0].Interface().(error) } return nil }, )
View Source
var Gob = NewHandler( func(encoder Encoder, value reflect.Value) error { i := Call(value, "GobEncode") if !i[1].IsNil() { return i[1].Interface().(error) } return encoder.Encode(i[0].Interface().([]byte)) }, func(decoder Decoder, value reflect.Value) error { var data []byte if err := decoder.Decode(&data); err != nil { return err } if i := Call(value, "GobDecode", reflect.ValueOf(data)); !i[0].IsNil() { return i[0].Interface().(error) } return nil }, )
Functions ¶
Types ¶
type Handler ¶
Click to show internal directories.
Click to hide internal directories.