This section is empty.
Copiers is a map of types that behave specially when they are copied. If a type is found in this map while deep copying, this function will be called to copy it instead of attempting to copy all fields.
The key should be the type, obtained using: reflect.TypeOf(value with type).
It is unsafe to write to this map after Copies have started. If you are writing to this map while also copying, wrap all modifications to this map as well as to Copy in a mutex.
ShallowCopiers is a map of pointer types that behave specially when they are copied. If a type is found in this map while deep copying, the pointer value will be shallow copied and not walked into.
The key should be the type, obtained using: reflect.TypeOf(value with type).
It is unsafe to write to this map after Copies have started. If you are writing to this map while also copying, wrap all modifications to this map as well as to Copy in a mutex.
func Copy(v interface{}) (interface{}, error)
Copy returns a deep copy of v.
Copy is unable to copy unexported fields in a struct (lowercase field names). Unexported fields can't be reflected by the Go runtime and therefore copystructure can't perform any data copies.
For structs, copy behavior can be controlled with struct tags. For example:
struct { Name string Data *bytes.Buffer `copy:"shallow"` }
The available tag values are:
input := map[string]interface{}{ "bob": map[string]interface{}{ "emails": []string{"a", "b"}, }, } dup, err := Copy(input) if err != nil { panic(err) } fmt.Printf("%#v", dup)
Output: map[string]interface {}{"bob":map[string]interface {}{"emails":[]string{"a", "b"}}}
func Must(v interface{}, err error) interface{}
Must is a helper that wraps a call to a function returning (interface{}, error) and panics if the error is non-nil. It is intended for use in variable initializations and should only be used when a copy error should be a crashing case.
func (c Config) Copy(v interface{}) (interface{}, error)
type CopierFunc func(interface{}) (interface{}, error)
CopierFunc is a function that knows how to deep copy a specific type. Register these globally with the Copiers variable.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4