summaryrefslogtreecommitdiff
path: root/lib.go
diff options
context:
space:
mode:
Diffstat (limited to 'lib.go')
-rw-r--r--lib.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib.go b/lib.go
index 5649f65..1bcb8fc 100644
--- a/lib.go
+++ b/lib.go
@@ -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)
+}