github.com/sixexorg/magnetic-ring@v0.0.0-20191119090307-31705a21e419/common/deep_copy.go (about)

     1  package common
     2  
     3  import (
     4  	"bytes"
     5  	"encoding/gob"
     6  )
     7  
     8  func DeepCopy(dst, src interface{}) error {
     9  	var buf bytes.Buffer
    10  	if err := gob.NewEncoder(&buf).Encode(src); err != nil {
    11  		return err
    12  	}
    13  	return gob.NewDecoder(bytes.NewBuffer(buf.Bytes())).Decode(dst)
    14  }