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 }
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 }