コード例 #1
0
ファイル: storeboltdb.go プロジェクト: fcavani/monlite
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
}
コード例 #2
0
ファイル: cache-disk.go プロジェクト: fcavani/image
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
}