summaryrefslogtreecommitdiff
path: root/vendor/github.com/ulule/deepcopier/README.md
diff options
context:
space:
mode:
authorMatthew Heon <matthew.heon@pm.me>2019-03-25 15:43:38 -0400
committerMatthew Heon <matthew.heon@pm.me>2019-03-27 20:00:31 -0400
commit5ed62991dcbe85e28774b036a7c89033af80136f (patch)
treeea5b57abb6290bf0afac083292aad6dc653f52be /vendor/github.com/ulule/deepcopier/README.md
parent340eeec1b654880f9d339c9ac2957bcaeaee6829 (diff)
downloadpodman-5ed62991dcbe85e28774b036a7c89033af80136f.tar.gz
podman-5ed62991dcbe85e28774b036a7c89033af80136f.tar.bz2
podman-5ed62991dcbe85e28774b036a7c89033af80136f.zip
Remove ulele/deepcopier in favor of JSON deep copy
We have a very high performance JSON library that doesn't need to perform code generation. Let's use it instead of our questionably performant, reflection-dependent deep copy library. Most changes because some functions can now return errors. Also converts cmd/podman to use jsoniter, instead of pkg/json, for increased performance. Signed-off-by: Matthew Heon <matthew.heon@pm.me>
Diffstat (limited to 'vendor/github.com/ulule/deepcopier/README.md')
-rw-r--r--vendor/github.com/ulule/deepcopier/README.md129
1 files changed, 0 insertions, 129 deletions
diff --git a/vendor/github.com/ulule/deepcopier/README.md b/vendor/github.com/ulule/deepcopier/README.md
deleted file mode 100644
index 25aafae8a..000000000
--- a/vendor/github.com/ulule/deepcopier/README.md
+++ /dev/null
@@ -1,129 +0,0 @@
-# Deepcopier
-
-[![Build Status](https://secure.travis-ci.org/ulule/deepcopier.png?branch=master)](http://travis-ci.org/ulule/deepcopier)
-
-This package is meant to make copying of structs to/from others structs a bit easier.
-
-## Installation
-
-```bash
-go get -u github.com/ulule/deepcopier
-```
-
-## Usage
-
-```golang
-// Deep copy instance1 into instance2
-Copy(instance1).To(instance2)
-
-// Deep copy instance1 into instance2 and passes the following context (which
-// is basically a map[string]interface{}) as first argument
-// to methods of instance2 that defined the struct tag "context".
-Copy(instance1).WithContext(map[string]interface{}{"foo": "bar"}).To(instance2)
-
-// Deep copy instance2 into instance1
-Copy(instance1).From(instance2)
-
-// Deep copy instance2 into instance1 and passes the following context (which
-// is basically a map[string]interface{}) as first argument
-// to methods of instance1 that defined the struct tag "context".
-Copy(instance1).WithContext(map[string]interface{}{"foo": "bar"}).From(instance2)
-```
-
-Available options for `deepcopier` struct tag:
-
-| Option | Description |
-| --------- | -------------------------------------------------------------------- |
-| `field` | Field or method name in source instance |
-| `skip` | Ignores the field |
-| `context` | Takes a `map[string]interface{}` as first argument (for methods) |
-| `force` | Set the value of a `sql.Null*` field (instead of copying the struct) |
-
-**Options example:**
-
-```golang
-type Source struct {
- Name string
- SkipMe string
- SQLNullStringToSQLNullString sql.NullString
- SQLNullStringToString sql.NullString
-
-}
-
-func (Source) MethodThatTakesContext(c map[string]interface{}) string {
- return "whatever"
-}
-
-type Destination struct {
- FieldWithAnotherNameInSource string `deepcopier:"field:Name"`
- SkipMe string `deepcopier:"skip"`
- MethodThatTakesContext string `deepcopier:"context"`
- SQLNullStringToSQLNullString sql.NullString
- SQLNullStringToString string `deepcopier:"force"`
-}
-
-```
-
-Example:
-
-```golang
-package main
-
-import (
- "fmt"
-
- "github.com/ulule/deepcopier"
-)
-
-// Model
-type User struct {
- // Basic string field
- Name string
- // Deepcopier supports https://golang.org/pkg/database/sql/driver/#Valuer
- Email sql.NullString
-}
-
-func (u *User) MethodThatTakesContext(ctx map[string]interface{}) string {
- // do whatever you want
- return "hello from this method"
-}
-
-// Resource
-type UserResource struct {
- DisplayName string `deepcopier:"field:Name"`
- SkipMe string `deepcopier:"skip"`
- MethodThatTakesContext string `deepcopier:"context"`
- Email string `deepcopier:"force"`
-
-}
-
-func main() {
- user := &User{
- Name: "gilles",
- Email: sql.NullString{
- Valid: true,
- String: "gilles@example.com",
- },
- }
-
- resource := &UserResource{}
-
- deepcopier.Copy(user).To(resource)
-
- fmt.Println(resource.DisplayName)
- fmt.Println(resource.Email)
-}
-```
-
-Looking for more information about the usage?
-
-We wrote [an introduction article](https://github.com/ulule/deepcopier/blob/master/examples/rest-usage/README.rst).
-Have a look and feel free to give us your feedback.
-
-## Contributing
-
-* Ping us on twitter [@oibafsellig](https://twitter.com/oibafsellig), [@thoas](https://twitter.com/thoas)
-* Fork the [project](https://github.com/ulule/deepcopier)
-* Help us improving and fixing [issues](https://github.com/ulule/deepcopier/issues)
-
-Don't hesitate ;)