Example #1
0
func (g *Gob) Decode(b []byte) (interface{}, error) {
	buf := bytes.NewBuffer(b)
	dec := gob.NewDecoder(buf)
	val := types.Make(types.Type(g.TypeName))
	err := dec.DecodeValue(val)
	if err != nil {
		return nil, e.New(err)
	}
	return val.Interface(), nil
}
Example #2
0
func decImg(b []byte) (Image, error) {
	buf := bytes.NewBuffer(b)
	dec := gob.NewDecoder(buf)
	var typename string
	err := dec.Decode(&typename)
	if err != nil {
		return nil, e.New(err)
	}
	val := types.Make(types.Type(typename))
	err = dec.DecodeValue(val)
	if err != nil {
		return nil, e.New(err)
	}
	return val.Interface().(Image), nil
}