Go (golang) library for deep copying values in Go.
copystructure is a Go library for deep copying values in Go.
This allows you to copy Go values that may contain reference values such as maps, slices, or pointers, and copy their data as well instead of just their references.
$ go get github.com/mitchellh/copystructure
For usage and examples see the Godoc.
Copyfunction has examples associated with it there.