diff options
Diffstat (limited to 'lib.go')
-rw-r--r-- | lib.go | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -3,6 +3,7 @@ package excelize import ( "archive/zip" "bytes" + "encoding/gob" "io" "log" "math" @@ -104,3 +105,14 @@ func intOnlyMapF(rune rune) rune { } return -1 } + +// deepCopy provides method to creates a deep copy of whatever is passed to it +// and returns the copy in an interface. The returned value will need to be +// asserted to the correct type. +func deepCopy(dst, src interface{}) error { + var buf bytes.Buffer + if err := gob.NewEncoder(&buf).Encode(src); err != nil { + return err + } + return gob.NewDecoder(bytes.NewBuffer(buf.Bytes())).Decode(dst) +} |