add prune and remove unused packages
This commit is contained in:
1
vendor/k8s.io/gengo/examples/deepcopy-gen/.gitignore
generated
vendored
1
vendor/k8s.io/gengo/examples/deepcopy-gen/.gitignore
generated
vendored
@@ -1 +0,0 @@
|
||||
deepcopy-gen
|
16
vendor/k8s.io/gengo/examples/deepcopy-gen/Makefile
generated
vendored
16
vendor/k8s.io/gengo/examples/deepcopy-gen/Makefile
generated
vendored
@@ -1,16 +0,0 @@
|
||||
TOOL=deepcopy-gen
|
||||
|
||||
test:
|
||||
@if ! git diff --quiet HEAD; then \
|
||||
echo "FAIL: git client is not clean"; \
|
||||
false; \
|
||||
fi
|
||||
@go build -o /tmp/$(TOOL)
|
||||
@PKGS=$$(go list ./output_tests/... | paste -sd' ' -); \
|
||||
/tmp/$(TOOL) --logtostderr --v=4 -i $$(echo $$PKGS | sed 's/ /,/g') -O zz_generated
|
||||
@if ! git diff --quiet HEAD; then \
|
||||
echo "FAIL: output files changed"; \
|
||||
git diff; \
|
||||
false; \
|
||||
fi
|
||||
|
749
vendor/k8s.io/gengo/examples/deepcopy-gen/generators/deepcopy_test.go
generated
vendored
749
vendor/k8s.io/gengo/examples/deepcopy-gen/generators/deepcopy_test.go
generated
vendored
@@ -1,749 +0,0 @@
|
||||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package generators
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"k8s.io/gengo/types"
|
||||
)
|
||||
|
||||
func Test_isRootedUnder(t *testing.T) {
|
||||
testCases := []struct {
|
||||
path string
|
||||
roots []string
|
||||
expect bool
|
||||
}{
|
||||
{
|
||||
path: "/foo/bar",
|
||||
roots: nil,
|
||||
expect: false,
|
||||
},
|
||||
{
|
||||
path: "/foo/bar",
|
||||
roots: []string{},
|
||||
expect: false,
|
||||
},
|
||||
{
|
||||
path: "/foo/bar",
|
||||
roots: []string{
|
||||
"/bad",
|
||||
},
|
||||
expect: false,
|
||||
},
|
||||
{
|
||||
path: "/foo/bar",
|
||||
roots: []string{
|
||||
"/foo",
|
||||
},
|
||||
expect: true,
|
||||
},
|
||||
{
|
||||
path: "/foo/bar",
|
||||
roots: []string{
|
||||
"/bad",
|
||||
"/foo",
|
||||
},
|
||||
expect: true,
|
||||
},
|
||||
{
|
||||
path: "/foo/bar/qux/zorb",
|
||||
roots: []string{
|
||||
"/foo/bar/qux",
|
||||
},
|
||||
expect: true,
|
||||
},
|
||||
{
|
||||
path: "/foo/bar",
|
||||
roots: []string{
|
||||
"/foo/bar",
|
||||
},
|
||||
expect: true,
|
||||
},
|
||||
{
|
||||
path: "/foo/barn",
|
||||
roots: []string{
|
||||
"/foo/bar",
|
||||
},
|
||||
expect: false,
|
||||
},
|
||||
{
|
||||
path: "/foo/bar",
|
||||
roots: []string{
|
||||
"/foo/barn",
|
||||
},
|
||||
expect: false,
|
||||
},
|
||||
{
|
||||
path: "/foo/bar",
|
||||
roots: []string{
|
||||
"",
|
||||
},
|
||||
expect: true,
|
||||
},
|
||||
}
|
||||
|
||||
for i, tc := range testCases {
|
||||
r := isRootedUnder(tc.path, tc.roots)
|
||||
if r != tc.expect {
|
||||
t.Errorf("case[%d]: expected %t, got %t for %q in %q", i, tc.expect, r, tc.path, tc.roots)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func Test_deepCopyMethod(t *testing.T) {
|
||||
testCases := []struct {
|
||||
typ types.Type
|
||||
expect bool
|
||||
error bool
|
||||
}{
|
||||
{
|
||||
typ: types.Type{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
// No DeepCopy method.
|
||||
Methods: map[string]*types.Type{},
|
||||
},
|
||||
expect: false,
|
||||
},
|
||||
{
|
||||
typ: types.Type{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
Methods: map[string]*types.Type{
|
||||
// No DeepCopy method.
|
||||
"method": {
|
||||
Name: types.Name{Package: "pkgname", Name: "func()"},
|
||||
Kind: types.Func,
|
||||
Signature: &types.Signature{
|
||||
Receiver: &types.Type{
|
||||
Kind: types.Pointer,
|
||||
Elem: &types.Type{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
},
|
||||
Parameters: []*types.Type{},
|
||||
Results: []*types.Type{},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expect: false,
|
||||
},
|
||||
{
|
||||
typ: types.Type{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
Methods: map[string]*types.Type{
|
||||
// Wrong signature (no result).
|
||||
"DeepCopy": {
|
||||
Name: types.Name{Package: "pkgname", Name: "func()"},
|
||||
Kind: types.Func,
|
||||
Signature: &types.Signature{
|
||||
Receiver: &types.Type{
|
||||
Kind: types.Pointer,
|
||||
Elem: &types.Type{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
},
|
||||
Parameters: []*types.Type{},
|
||||
Results: []*types.Type{},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expect: false,
|
||||
error: true,
|
||||
},
|
||||
{
|
||||
typ: types.Type{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
Methods: map[string]*types.Type{
|
||||
// Wrong signature (wrong result).
|
||||
"DeepCopy": {
|
||||
Name: types.Name{Package: "pkgname", Name: "func() int"},
|
||||
Kind: types.Func,
|
||||
Signature: &types.Signature{
|
||||
Receiver: &types.Type{
|
||||
Kind: types.Pointer,
|
||||
Elem: &types.Type{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
},
|
||||
Parameters: []*types.Type{},
|
||||
Results: []*types.Type{
|
||||
{
|
||||
Name: types.Name{Name: "int"},
|
||||
Kind: types.Builtin,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expect: false,
|
||||
error: true,
|
||||
},
|
||||
{
|
||||
typ: types.Type{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
Methods: map[string]*types.Type{
|
||||
// Wrong signature with pointer receiver, but non-pointer result.
|
||||
"DeepCopy": {
|
||||
Name: types.Name{Package: "pkgname", Name: "func() pkgname.typename"},
|
||||
Kind: types.Func,
|
||||
Signature: &types.Signature{
|
||||
Receiver: &types.Type{
|
||||
Kind: types.Pointer,
|
||||
Elem: &types.Type{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
},
|
||||
Parameters: []*types.Type{},
|
||||
Results: []*types.Type{
|
||||
{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expect: false,
|
||||
error: true,
|
||||
},
|
||||
{
|
||||
typ: types.Type{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
Methods: map[string]*types.Type{
|
||||
// Wrong signature with non-pointer receiver, but pointer result.
|
||||
"DeepCopy": {
|
||||
Name: types.Name{Package: "pkgname", Name: "func() pkgname.typename"},
|
||||
Kind: types.Func,
|
||||
Signature: &types.Signature{
|
||||
Receiver: &types.Type{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
Parameters: []*types.Type{},
|
||||
Results: []*types.Type{
|
||||
{
|
||||
Kind: types.Pointer,
|
||||
Elem: &types.Type{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expect: false,
|
||||
error: true,
|
||||
},
|
||||
{
|
||||
typ: types.Type{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
Methods: map[string]*types.Type{
|
||||
// Correct signature with non-pointer receiver.
|
||||
"DeepCopy": {
|
||||
Name: types.Name{Package: "pkgname", Name: "func() pkgname.typename"},
|
||||
Kind: types.Func,
|
||||
Signature: &types.Signature{
|
||||
Receiver: &types.Type{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
Parameters: []*types.Type{},
|
||||
Results: []*types.Type{
|
||||
{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expect: true,
|
||||
},
|
||||
{
|
||||
typ: types.Type{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
Methods: map[string]*types.Type{
|
||||
// Correct signature with pointer receiver.
|
||||
"DeepCopy": {
|
||||
Name: types.Name{Package: "pkgname", Name: "func() pkgname.typename"},
|
||||
Kind: types.Func,
|
||||
Signature: &types.Signature{
|
||||
Receiver: &types.Type{
|
||||
Kind: types.Pointer,
|
||||
Elem: &types.Type{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
},
|
||||
Parameters: []*types.Type{},
|
||||
Results: []*types.Type{
|
||||
{
|
||||
Kind: types.Pointer,
|
||||
Elem: &types.Type{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expect: true,
|
||||
},
|
||||
{
|
||||
typ: types.Type{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
Methods: map[string]*types.Type{
|
||||
// Wrong signature (has params).
|
||||
"DeepCopy": {
|
||||
Name: types.Name{Package: "pkgname", Name: "func(int) pkgname.typename"},
|
||||
Kind: types.Func,
|
||||
Signature: &types.Signature{
|
||||
Receiver: &types.Type{
|
||||
Kind: types.Pointer,
|
||||
Elem: &types.Type{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
},
|
||||
Parameters: []*types.Type{
|
||||
{
|
||||
Name: types.Name{Name: "int"},
|
||||
Kind: types.Builtin,
|
||||
},
|
||||
},
|
||||
Results: []*types.Type{
|
||||
{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expect: false,
|
||||
error: true,
|
||||
},
|
||||
{
|
||||
typ: types.Type{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
Methods: map[string]*types.Type{
|
||||
// Wrong signature (extra results).
|
||||
"DeepCopy": {
|
||||
Name: types.Name{Package: "pkgname", Name: "func() (pkgname.typename, int)"},
|
||||
Kind: types.Func,
|
||||
Signature: &types.Signature{
|
||||
Receiver: &types.Type{
|
||||
Kind: types.Pointer,
|
||||
Elem: &types.Type{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
},
|
||||
Parameters: []*types.Type{},
|
||||
Results: []*types.Type{
|
||||
{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
},
|
||||
{
|
||||
Name: types.Name{Name: "int"},
|
||||
Kind: types.Builtin,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expect: false,
|
||||
error: true,
|
||||
},
|
||||
}
|
||||
|
||||
for i, tc := range testCases {
|
||||
r, err := deepCopyMethod(&tc.typ)
|
||||
if tc.error && err == nil {
|
||||
t.Errorf("case[%d]: expected an error, got none", i)
|
||||
} else if !tc.error && err != nil {
|
||||
t.Errorf("case[%d]: expected no error, got: %v", i, err)
|
||||
} else if !tc.error && (r != nil) != tc.expect {
|
||||
t.Errorf("case[%d]: expected result %v, got: %v", i, tc.expect, r)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func Test_deepCopyIntoMethod(t *testing.T) {
|
||||
testCases := []struct {
|
||||
typ types.Type
|
||||
expect bool
|
||||
error bool
|
||||
}{
|
||||
{
|
||||
typ: types.Type{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
// No DeepCopyInto method.
|
||||
Methods: map[string]*types.Type{},
|
||||
},
|
||||
expect: false,
|
||||
},
|
||||
{
|
||||
typ: types.Type{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
Methods: map[string]*types.Type{
|
||||
// No DeepCopyInto method.
|
||||
"method": {
|
||||
Name: types.Name{Package: "pkgname", Name: "func()"},
|
||||
Kind: types.Func,
|
||||
Signature: &types.Signature{
|
||||
Receiver: &types.Type{
|
||||
Kind: types.Pointer,
|
||||
Elem: &types.Type{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
},
|
||||
Parameters: []*types.Type{},
|
||||
Results: []*types.Type{},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expect: false,
|
||||
},
|
||||
{
|
||||
typ: types.Type{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
Methods: map[string]*types.Type{
|
||||
// Wrong signature (no parameter).
|
||||
"DeepCopyInto": {
|
||||
Name: types.Name{Package: "pkgname", Name: "func()"},
|
||||
Kind: types.Func,
|
||||
Signature: &types.Signature{
|
||||
Receiver: &types.Type{
|
||||
Kind: types.Pointer,
|
||||
Elem: &types.Type{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
},
|
||||
Parameters: []*types.Type{},
|
||||
Results: []*types.Type{},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expect: false,
|
||||
error: true,
|
||||
},
|
||||
{
|
||||
typ: types.Type{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
Methods: map[string]*types.Type{
|
||||
// Wrong signature (unexpected result).
|
||||
"DeepCopyInto": {
|
||||
Name: types.Name{Package: "pkgname", Name: "func(*pkgname.typename) int"},
|
||||
Kind: types.Func,
|
||||
Signature: &types.Signature{
|
||||
Receiver: &types.Type{
|
||||
Kind: types.Pointer,
|
||||
Elem: &types.Type{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
},
|
||||
Parameters: []*types.Type{
|
||||
{
|
||||
Kind: types.Pointer,
|
||||
Elem: &types.Type{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
},
|
||||
},
|
||||
Results: []*types.Type{
|
||||
{
|
||||
Name: types.Name{Name: "int"},
|
||||
Kind: types.Builtin,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expect: false,
|
||||
error: true,
|
||||
},
|
||||
{
|
||||
typ: types.Type{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
Methods: map[string]*types.Type{
|
||||
// Wrong signature (non-pointer parameter, pointer receiver).
|
||||
"DeepCopyInto": {
|
||||
Name: types.Name{Package: "pkgname", Name: "func(pkgname.typename)"},
|
||||
Kind: types.Func,
|
||||
Signature: &types.Signature{
|
||||
Receiver: &types.Type{
|
||||
Kind: types.Pointer,
|
||||
Elem: &types.Type{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
},
|
||||
Parameters: []*types.Type{
|
||||
{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
},
|
||||
Results: []*types.Type{},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expect: false,
|
||||
error: true,
|
||||
},
|
||||
{
|
||||
typ: types.Type{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
Methods: map[string]*types.Type{
|
||||
// Wrong signature (non-pointer parameter, non-pointer receiver).
|
||||
"DeepCopyInto": {
|
||||
Name: types.Name{Package: "pkgname", Name: "func(pkgname.typename)"},
|
||||
Kind: types.Func,
|
||||
Signature: &types.Signature{
|
||||
Receiver: &types.Type{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
Parameters: []*types.Type{
|
||||
{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
},
|
||||
Results: []*types.Type{},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expect: false,
|
||||
error: true,
|
||||
},
|
||||
{
|
||||
typ: types.Type{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
Methods: map[string]*types.Type{
|
||||
// Correct signature with non-pointer receiver.
|
||||
"DeepCopyInto": {
|
||||
Name: types.Name{Package: "pkgname", Name: "func(*pkgname.typename)"},
|
||||
Kind: types.Func,
|
||||
Signature: &types.Signature{
|
||||
Receiver: &types.Type{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
Parameters: []*types.Type{
|
||||
{
|
||||
Kind: types.Pointer,
|
||||
Elem: &types.Type{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
},
|
||||
},
|
||||
Results: []*types.Type{},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expect: true,
|
||||
},
|
||||
{
|
||||
typ: types.Type{
|
||||
Name: types.Name{Package: "pkgname", Name: "typename"},
|
||||
Kind: types.Builtin,
|
||||
Methods: map[string]*types.Type{
|
||||
// Correct signature with pointer receiver.
|
||||
"DeepCopyInto": {
|
||||
Name: types.Name{Package: "pkgname", Name: "func(*pkgname.typename)"},
|
||||
Kind: types.Func,
|
||||
Signature: &types.Signature{
|
||||
Receiver: &types.Type{
|
||||
Kind: types.Pointer,
|
||||
Elem: &types.Type{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
},
|
||||
Parameters: []*types.Type{
|
||||
{
|
||||
Kind: types.Pointer,
|
||||
Elem: &types.Type{Kind: types.Struct, Name: types.Name{Package: "pkgname", Name: "typename"}},
|
||||
},
|
||||
},
|
||||
Results: []*types.Type{},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expect: true,
|
||||
},
|
||||
}
|
||||
|
||||
for i, tc := range testCases {
|
||||
r, err := deepCopyIntoMethod(&tc.typ)
|
||||
if tc.error && err == nil {
|
||||
t.Errorf("case[%d]: expected an error, got none", i)
|
||||
} else if !tc.error && err != nil {
|
||||
t.Errorf("case[%d]: expected no error, got: %v", i, err)
|
||||
} else if !tc.error && (r != nil) != tc.expect {
|
||||
t.Errorf("case[%d]: expected result %v, got: %v", i, tc.expect, r)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func Test_extractTagParams(t *testing.T) {
|
||||
testCases := []struct {
|
||||
comments []string
|
||||
expect *enabledTagValue
|
||||
}{
|
||||
{
|
||||
comments: []string{
|
||||
"Human comment",
|
||||
},
|
||||
expect: nil,
|
||||
},
|
||||
{
|
||||
comments: []string{
|
||||
"Human comment",
|
||||
"+k8s:deepcopy-gen",
|
||||
},
|
||||
expect: &enabledTagValue{
|
||||
value: "",
|
||||
register: false,
|
||||
},
|
||||
},
|
||||
{
|
||||
comments: []string{
|
||||
"Human comment",
|
||||
"+k8s:deepcopy-gen=package",
|
||||
},
|
||||
expect: &enabledTagValue{
|
||||
value: "package",
|
||||
register: false,
|
||||
},
|
||||
},
|
||||
{
|
||||
comments: []string{
|
||||
"Human comment",
|
||||
"+k8s:deepcopy-gen=package,register",
|
||||
},
|
||||
expect: &enabledTagValue{
|
||||
value: "package",
|
||||
register: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
comments: []string{
|
||||
"Human comment",
|
||||
"+k8s:deepcopy-gen=package,register=true",
|
||||
},
|
||||
expect: &enabledTagValue{
|
||||
value: "package",
|
||||
register: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
comments: []string{
|
||||
"Human comment",
|
||||
"+k8s:deepcopy-gen=package,register=false",
|
||||
},
|
||||
expect: &enabledTagValue{
|
||||
value: "package",
|
||||
register: false,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for i, tc := range testCases {
|
||||
r := extractEnabledTag(tc.comments)
|
||||
if r == nil && tc.expect != nil {
|
||||
t.Errorf("case[%d]: expected non-nil", i)
|
||||
}
|
||||
if r != nil && tc.expect == nil {
|
||||
t.Errorf("case[%d]: expected nil, got %v", i, *r)
|
||||
}
|
||||
if r != nil && *r != *tc.expect {
|
||||
t.Errorf("case[%d]: expected %v, got %v", i, *tc.expect, *r)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func Test_extractInterfacesTag(t *testing.T) {
|
||||
testCases := []struct {
|
||||
comments, secondComments []string
|
||||
expect []string
|
||||
}{
|
||||
{
|
||||
comments: []string{},
|
||||
expect: nil,
|
||||
},
|
||||
{
|
||||
comments: []string{
|
||||
"+k8s:deepcopy-gen:interfaces=k8s.io/kubernetes/runtime.Object",
|
||||
},
|
||||
expect: []string{
|
||||
"k8s.io/kubernetes/runtime.Object",
|
||||
},
|
||||
},
|
||||
{
|
||||
comments: []string{
|
||||
"+k8s:deepcopy-gen:interfaces=k8s.io/kubernetes/runtime.Object",
|
||||
"+k8s:deepcopy-gen:interfaces=k8s.io/kubernetes/runtime.List",
|
||||
},
|
||||
expect: []string{
|
||||
"k8s.io/kubernetes/runtime.Object",
|
||||
"k8s.io/kubernetes/runtime.List",
|
||||
},
|
||||
},
|
||||
{
|
||||
comments: []string{
|
||||
"+k8s:deepcopy-gen:interfaces=k8s.io/kubernetes/runtime.Object",
|
||||
"+k8s:deepcopy-gen:interfaces=k8s.io/kubernetes/runtime.Object",
|
||||
},
|
||||
expect: []string{
|
||||
"k8s.io/kubernetes/runtime.Object",
|
||||
"k8s.io/kubernetes/runtime.Object",
|
||||
},
|
||||
},
|
||||
{
|
||||
secondComments: []string{
|
||||
"+k8s:deepcopy-gen:interfaces=k8s.io/kubernetes/runtime.Object",
|
||||
},
|
||||
expect: []string{
|
||||
"k8s.io/kubernetes/runtime.Object",
|
||||
},
|
||||
},
|
||||
{
|
||||
comments: []string{
|
||||
"+k8s:deepcopy-gen:interfaces=k8s.io/kubernetes/runtime.Object",
|
||||
},
|
||||
secondComments: []string{
|
||||
"+k8s:deepcopy-gen:interfaces=k8s.io/kubernetes/runtime.List",
|
||||
},
|
||||
expect: []string{
|
||||
"k8s.io/kubernetes/runtime.List",
|
||||
"k8s.io/kubernetes/runtime.Object",
|
||||
},
|
||||
},
|
||||
{
|
||||
comments: []string{
|
||||
"+k8s:deepcopy-gen:interfaces=k8s.io/kubernetes/runtime.Object",
|
||||
},
|
||||
secondComments: []string{
|
||||
"+k8s:deepcopy-gen:interfaces=k8s.io/kubernetes/runtime.Object",
|
||||
},
|
||||
expect: []string{
|
||||
"k8s.io/kubernetes/runtime.Object",
|
||||
"k8s.io/kubernetes/runtime.Object",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for i, tc := range testCases {
|
||||
typ := &types.Type{
|
||||
CommentLines: tc.comments,
|
||||
SecondClosestCommentLines: tc.secondComments,
|
||||
}
|
||||
r := extractInterfacesTag(typ)
|
||||
if r == nil && tc.expect != nil {
|
||||
t.Errorf("case[%d]: expected non-nil", i)
|
||||
}
|
||||
if r != nil && tc.expect == nil {
|
||||
t.Errorf("case[%d]: expected nil, got %v", i, r)
|
||||
}
|
||||
if r != nil && !reflect.DeepEqual(r, tc.expect) {
|
||||
t.Errorf("case[%d]: expected %v, got %v", i, tc.expect, r)
|
||||
}
|
||||
}
|
||||
}
|
88
vendor/k8s.io/gengo/examples/deepcopy-gen/main.go
generated
vendored
88
vendor/k8s.io/gengo/examples/deepcopy-gen/main.go
generated
vendored
@@ -1,88 +0,0 @@
|
||||
/*
|
||||
Copyright 2015 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// deepcopy-gen is a tool for auto-generating DeepCopy functions.
|
||||
//
|
||||
// Given a list of input directories, it will generate DeepCopy and DeepCopyInto
|
||||
// methods that efficiently perform a full deep-copy of each type. If these
|
||||
// already exist (are predefined by the developer), they are used instead of
|
||||
// generating new ones.
|
||||
//
|
||||
// If interfaces are referenced in types, it is expected that corresponding
|
||||
// DeepCopyInterfaceName methods exist, e.g. DeepCopyObject for runtime.Object.
|
||||
// These can be predefined by the developer or generated through tags, see below.
|
||||
// They must be added to the interfaces themselves manually, e.g.
|
||||
// type Object interface {
|
||||
// ...
|
||||
// DeepCopyObject() Object
|
||||
// }
|
||||
//
|
||||
// All generation is governed by comment tags in the source. Any package may
|
||||
// request DeepCopy generation by including a comment in the file-comments of
|
||||
// a doc.go file, of the form:
|
||||
// // +k8s:deepcopy-gen=package
|
||||
//
|
||||
// DeepCopy functions can be generated for individual types, rather than the
|
||||
// entire package by specifying a comment on the type definion of the form:
|
||||
// // +k8s:deepcopy-gen=true
|
||||
//
|
||||
// When generating for a whole package, individual types may opt out of
|
||||
// DeepCopy generation by specifying a comment on the type definition of the form:
|
||||
// // +k8s:deepcopy-gen=false
|
||||
//
|
||||
// Additional DeepCopyInterfaceName methods can be generated by specifying a
|
||||
// comment on the type definition of the form:
|
||||
// // +k8s:deepcopy-gen:interfaces=k8s.io/kubernetes/runtime.Object,k8s.io/kubernetes/runtime.List
|
||||
// This leads to the generation of DeepCopyObject and DeepCopyList with the given
|
||||
// interfaces as return types. We say that the tagged type implements deepcopy for the
|
||||
// interfaces.
|
||||
//
|
||||
// The deepcopy funcs for interfaces using "+k8s:deepcopy-gen:interfaces" use the pointer
|
||||
// of the type as receiver. For those special cases where the non-pointer object should
|
||||
// implement the interface, this can be done with:
|
||||
// // +k8s:deepcopy-gen:nonpointer-interfaces=true
|
||||
package main
|
||||
|
||||
import (
|
||||
"k8s.io/gengo/args"
|
||||
"k8s.io/gengo/examples/deepcopy-gen/generators"
|
||||
|
||||
"github.com/spf13/pflag"
|
||||
"k8s.io/klog"
|
||||
)
|
||||
|
||||
func main() {
|
||||
arguments := args.Default()
|
||||
|
||||
// Override defaults.
|
||||
arguments.OutputFileBaseName = "deepcopy_generated"
|
||||
|
||||
// Custom args.
|
||||
customArgs := &generators.CustomArgs{}
|
||||
pflag.CommandLine.StringSliceVar(&customArgs.BoundingDirs, "bounding-dirs", customArgs.BoundingDirs,
|
||||
"Comma-separated list of import paths which bound the types for which deep-copies will be generated.")
|
||||
arguments.CustomArgs = customArgs
|
||||
|
||||
// Run it.
|
||||
if err := arguments.Execute(
|
||||
generators.NameSystems(),
|
||||
generators.DefaultNameSystem(),
|
||||
generators.Packages,
|
||||
); err != nil {
|
||||
klog.Fatalf("Error: %v", err)
|
||||
}
|
||||
klog.V(2).Info("Completed successfully.")
|
||||
}
|
89
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/aliases/doc.go
generated
vendored
89
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/aliases/doc.go
generated
vendored
@@ -1,89 +0,0 @@
|
||||
/*
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// +k8s:deepcopy-gen=package
|
||||
|
||||
// This is a test package.
|
||||
package aliases
|
||||
|
||||
// Note: the following AliasInterface and AliasAliasInterface +k8s:deepcopy-gen:interfaces tags
|
||||
// are necessary because Golang flattens interface alias in the type system. I.e. an alias J of
|
||||
// an interface I is actually equivalent to I. So support deepcopies of those aliases, we have
|
||||
// to implement all aliases of that interface.
|
||||
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/gengo/examples/deepcopy-gen/output_tests/aliases.Interface
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/gengo/examples/deepcopy-gen/output_tests/aliases.AliasInterface
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/gengo/examples/deepcopy-gen/output_tests/aliases.AliasAliasInterface
|
||||
type Foo struct {
|
||||
X int
|
||||
}
|
||||
|
||||
type Interface interface {
|
||||
DeepCopyInterface() Interface
|
||||
DeepCopyAliasInterface() AliasInterface
|
||||
DeepCopyAliasAliasInterface() AliasAliasInterface
|
||||
}
|
||||
|
||||
type Builtin int
|
||||
type Slice []int
|
||||
type Pointer *int
|
||||
type PointerAlias *Builtin
|
||||
type Struct Foo
|
||||
type Map map[string]int
|
||||
|
||||
type FooAlias Foo
|
||||
type FooSlice []Foo
|
||||
type FooPointer *Foo
|
||||
type FooMap map[string]Foo
|
||||
|
||||
type AliasBuiltin Builtin
|
||||
type AliasSlice Slice
|
||||
type AliasPointer Pointer
|
||||
type AliasStruct Struct
|
||||
type AliasMap Map
|
||||
|
||||
type AliasInterface Interface
|
||||
type AliasAliasInterface AliasInterface
|
||||
type AliasInterfaceMap map[string]AliasInterface
|
||||
type AliasInterfaceSlice []AliasInterface
|
||||
|
||||
// Aliases
|
||||
type Ttest struct {
|
||||
Builtin Builtin
|
||||
Slice Slice
|
||||
Pointer Pointer
|
||||
PointerAlias PointerAlias
|
||||
Struct Struct
|
||||
Map Map
|
||||
SliceSlice []Slice
|
||||
MapSlice map[string]Slice
|
||||
|
||||
FooAlias FooAlias
|
||||
FooSlice FooSlice
|
||||
FooPointer FooPointer
|
||||
FooMap FooMap
|
||||
|
||||
AliasBuiltin AliasBuiltin
|
||||
AliasSlice AliasSlice
|
||||
AliasPointer AliasPointer
|
||||
AliasStruct AliasStruct
|
||||
AliasMap AliasMap
|
||||
|
||||
AliasInterface AliasInterface
|
||||
AliasAliasInterface AliasAliasInterface
|
||||
AliasInterfaceMap AliasInterfaceMap
|
||||
AliasInterfaceSlice AliasInterfaceSlice
|
||||
}
|
412
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/aliases/zz_generated.go
generated
vendored
412
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/aliases/zz_generated.go
generated
vendored
@@ -1,412 +0,0 @@
|
||||
// +build !ignore_autogenerated
|
||||
|
||||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by deepcopy-gen. DO NOT EDIT.
|
||||
|
||||
package aliases
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in AliasInterfaceMap) DeepCopyInto(out *AliasInterfaceMap) {
|
||||
{
|
||||
in := &in
|
||||
*out = make(AliasInterfaceMap, len(*in))
|
||||
for key, val := range *in {
|
||||
if val == nil {
|
||||
(*out)[key] = nil
|
||||
} else {
|
||||
(*out)[key] = val.DeepCopyAliasInterface()
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AliasInterfaceMap.
|
||||
func (in AliasInterfaceMap) DeepCopy() AliasInterfaceMap {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(AliasInterfaceMap)
|
||||
in.DeepCopyInto(out)
|
||||
return *out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in AliasInterfaceSlice) DeepCopyInto(out *AliasInterfaceSlice) {
|
||||
{
|
||||
in := &in
|
||||
*out = make(AliasInterfaceSlice, len(*in))
|
||||
for i := range *in {
|
||||
if (*in)[i] != nil {
|
||||
(*out)[i] = (*in)[i].DeepCopyAliasInterface()
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AliasInterfaceSlice.
|
||||
func (in AliasInterfaceSlice) DeepCopy() AliasInterfaceSlice {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(AliasInterfaceSlice)
|
||||
in.DeepCopyInto(out)
|
||||
return *out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in AliasMap) DeepCopyInto(out *AliasMap) {
|
||||
{
|
||||
in := &in
|
||||
*out = make(AliasMap, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AliasMap.
|
||||
func (in AliasMap) DeepCopy() AliasMap {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(AliasMap)
|
||||
in.DeepCopyInto(out)
|
||||
return *out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in AliasSlice) DeepCopyInto(out *AliasSlice) {
|
||||
{
|
||||
in := &in
|
||||
*out = make(AliasSlice, len(*in))
|
||||
copy(*out, *in)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AliasSlice.
|
||||
func (in AliasSlice) DeepCopy() AliasSlice {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(AliasSlice)
|
||||
in.DeepCopyInto(out)
|
||||
return *out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *AliasStruct) DeepCopyInto(out *AliasStruct) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AliasStruct.
|
||||
func (in *AliasStruct) DeepCopy() *AliasStruct {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(AliasStruct)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Foo) DeepCopyInto(out *Foo) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Foo.
|
||||
func (in *Foo) DeepCopy() *Foo {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Foo)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyAliasAliasInterface is an autogenerated deepcopy function, copying the receiver, creating a new AliasAliasInterface.
|
||||
func (in *Foo) DeepCopyAliasAliasInterface() AliasAliasInterface {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyAliasInterface is an autogenerated deepcopy function, copying the receiver, creating a new AliasInterface.
|
||||
func (in *Foo) DeepCopyAliasInterface() AliasInterface {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Interface.
|
||||
func (in *Foo) DeepCopyInterface() Interface {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *FooAlias) DeepCopyInto(out *FooAlias) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FooAlias.
|
||||
func (in *FooAlias) DeepCopy() *FooAlias {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(FooAlias)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in FooMap) DeepCopyInto(out *FooMap) {
|
||||
{
|
||||
in := &in
|
||||
*out = make(FooMap, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FooMap.
|
||||
func (in FooMap) DeepCopy() FooMap {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(FooMap)
|
||||
in.DeepCopyInto(out)
|
||||
return *out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in FooSlice) DeepCopyInto(out *FooSlice) {
|
||||
{
|
||||
in := &in
|
||||
*out = make(FooSlice, len(*in))
|
||||
copy(*out, *in)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FooSlice.
|
||||
func (in FooSlice) DeepCopy() FooSlice {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(FooSlice)
|
||||
in.DeepCopyInto(out)
|
||||
return *out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in Map) DeepCopyInto(out *Map) {
|
||||
{
|
||||
in := &in
|
||||
*out = make(Map, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Map.
|
||||
func (in Map) DeepCopy() Map {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Map)
|
||||
in.DeepCopyInto(out)
|
||||
return *out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in Slice) DeepCopyInto(out *Slice) {
|
||||
{
|
||||
in := &in
|
||||
*out = make(Slice, len(*in))
|
||||
copy(*out, *in)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Slice.
|
||||
func (in Slice) DeepCopy() Slice {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Slice)
|
||||
in.DeepCopyInto(out)
|
||||
return *out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct) DeepCopyInto(out *Struct) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct.
|
||||
func (in *Struct) DeepCopy() *Struct {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Ttest) DeepCopyInto(out *Ttest) {
|
||||
*out = *in
|
||||
if in.Slice != nil {
|
||||
in, out := &in.Slice, &out.Slice
|
||||
*out = make(Slice, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.Pointer != nil {
|
||||
in, out := &in.Pointer, &out.Pointer
|
||||
*out = new(int)
|
||||
**out = **in
|
||||
}
|
||||
if in.PointerAlias != nil {
|
||||
in, out := &in.PointerAlias, &out.PointerAlias
|
||||
*out = new(Builtin)
|
||||
**out = **in
|
||||
}
|
||||
out.Struct = in.Struct
|
||||
if in.Map != nil {
|
||||
in, out := &in.Map, &out.Map
|
||||
*out = make(Map, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.SliceSlice != nil {
|
||||
in, out := &in.SliceSlice, &out.SliceSlice
|
||||
*out = make([]Slice, len(*in))
|
||||
for i := range *in {
|
||||
if (*in)[i] != nil {
|
||||
in, out := &(*in)[i], &(*out)[i]
|
||||
*out = make(Slice, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
}
|
||||
}
|
||||
if in.MapSlice != nil {
|
||||
in, out := &in.MapSlice, &out.MapSlice
|
||||
*out = make(map[string]Slice, len(*in))
|
||||
for key, val := range *in {
|
||||
var outVal []int
|
||||
if val == nil {
|
||||
(*out)[key] = nil
|
||||
} else {
|
||||
in, out := &val, &outVal
|
||||
*out = make(Slice, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
(*out)[key] = outVal
|
||||
}
|
||||
}
|
||||
out.FooAlias = in.FooAlias
|
||||
if in.FooSlice != nil {
|
||||
in, out := &in.FooSlice, &out.FooSlice
|
||||
*out = make(FooSlice, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.FooPointer != nil {
|
||||
in, out := &in.FooPointer, &out.FooPointer
|
||||
*out = new(Foo)
|
||||
**out = **in
|
||||
}
|
||||
if in.FooMap != nil {
|
||||
in, out := &in.FooMap, &out.FooMap
|
||||
*out = make(FooMap, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.AliasSlice != nil {
|
||||
in, out := &in.AliasSlice, &out.AliasSlice
|
||||
*out = make(AliasSlice, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.AliasPointer != nil {
|
||||
in, out := &in.AliasPointer, &out.AliasPointer
|
||||
*out = new(int)
|
||||
**out = **in
|
||||
}
|
||||
out.AliasStruct = in.AliasStruct
|
||||
if in.AliasMap != nil {
|
||||
in, out := &in.AliasMap, &out.AliasMap
|
||||
*out = make(AliasMap, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.AliasInterface != nil {
|
||||
out.AliasInterface = in.AliasInterface.DeepCopyAliasInterface()
|
||||
}
|
||||
if in.AliasAliasInterface != nil {
|
||||
out.AliasAliasInterface = in.AliasAliasInterface.DeepCopyAliasAliasInterface()
|
||||
}
|
||||
if in.AliasInterfaceMap != nil {
|
||||
in, out := &in.AliasInterfaceMap, &out.AliasInterfaceMap
|
||||
*out = make(AliasInterfaceMap, len(*in))
|
||||
for key, val := range *in {
|
||||
if val == nil {
|
||||
(*out)[key] = nil
|
||||
} else {
|
||||
(*out)[key] = val.DeepCopyAliasInterface()
|
||||
}
|
||||
}
|
||||
}
|
||||
if in.AliasInterfaceSlice != nil {
|
||||
in, out := &in.AliasInterfaceSlice, &out.AliasInterfaceSlice
|
||||
*out = make(AliasInterfaceSlice, len(*in))
|
||||
for i := range *in {
|
||||
if (*in)[i] != nil {
|
||||
(*out)[i] = (*in)[i].DeepCopyAliasInterface()
|
||||
}
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ttest.
|
||||
func (in *Ttest) DeepCopy() *Ttest {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Ttest)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
35
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/builtins/doc.go
generated
vendored
35
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/builtins/doc.go
generated
vendored
@@ -1,35 +0,0 @@
|
||||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// +k8s:deepcopy-gen=package
|
||||
|
||||
// This is a test package.
|
||||
package builtins
|
||||
|
||||
type Ttest struct {
|
||||
Byte byte
|
||||
//Int8 int8 //TODO: int8 becomes byte in SnippetWriter
|
||||
Int16 int16
|
||||
Int32 int32
|
||||
Int64 int64
|
||||
Uint8 uint8
|
||||
Uint16 uint16
|
||||
Uint32 uint32
|
||||
Uint64 uint64
|
||||
Float32 float32
|
||||
Float64 float64
|
||||
String string
|
||||
}
|
37
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/builtins/zz_generated.go
generated
vendored
37
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/builtins/zz_generated.go
generated
vendored
@@ -1,37 +0,0 @@
|
||||
// +build !ignore_autogenerated
|
||||
|
||||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by deepcopy-gen. DO NOT EDIT.
|
||||
|
||||
package builtins
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Ttest) DeepCopyInto(out *Ttest) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ttest.
|
||||
func (in *Ttest) DeepCopy() *Ttest {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Ttest)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
131
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/interface_fuzzer.go
generated
vendored
131
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/interface_fuzzer.go
generated
vendored
@@ -1,131 +0,0 @@
|
||||
/*
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package output_tests
|
||||
|
||||
import (
|
||||
"github.com/google/gofuzz"
|
||||
|
||||
"k8s.io/gengo/examples/deepcopy-gen/output_tests/aliases"
|
||||
"k8s.io/gengo/examples/deepcopy-gen/output_tests/interfaces"
|
||||
)
|
||||
|
||||
// interfaceFuzzers contains fuzzer that set all interface to nil because our
|
||||
// JSON deepcopy does not work with it.
|
||||
// TODO: test also interface deepcopy
|
||||
var interfaceFuzzers = []interface{}{
|
||||
func(s *aliases.AliasAliasInterface, c fuzz.Continue) {
|
||||
if c.RandBool() {
|
||||
*s = nil
|
||||
} else {
|
||||
*s = &aliasAliasInterfaceInstance{X: c.Int()}
|
||||
}
|
||||
},
|
||||
func(s *aliases.AliasInterface, c fuzz.Continue) {
|
||||
if c.RandBool() {
|
||||
*s = nil
|
||||
} else {
|
||||
*s = &aliasAliasInterfaceInstance{X: c.Int()}
|
||||
}
|
||||
},
|
||||
func(s *aliases.Interface, c fuzz.Continue) {
|
||||
if c.RandBool() {
|
||||
*s = nil
|
||||
} else {
|
||||
*s = &aliasAliasInterfaceInstance{X: c.Int()}
|
||||
}
|
||||
},
|
||||
func(s *aliases.AliasInterfaceMap, c fuzz.Continue) {
|
||||
if c.RandBool() {
|
||||
*s = nil
|
||||
} else {
|
||||
*s = make(aliases.AliasInterfaceMap)
|
||||
for i := 0; i < c.Intn(3); i++ {
|
||||
if c.RandBool() {
|
||||
(*s)[c.RandString()] = nil
|
||||
} else {
|
||||
(*s)[c.RandString()] = &aliasAliasInterfaceInstance{X: c.Int()}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
func(s *aliases.AliasInterfaceSlice, c fuzz.Continue) {
|
||||
if c.RandBool() {
|
||||
*s = nil
|
||||
} else {
|
||||
*s = make(aliases.AliasInterfaceSlice, 0, 0)
|
||||
for i := 0; i < c.Intn(3); i++ {
|
||||
if c.RandBool() {
|
||||
*s = append(*s, nil)
|
||||
} else {
|
||||
*s = append(*s, &aliasAliasInterfaceInstance{X: c.Int()})
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
func(s *interfaces.Inner, c fuzz.Continue) {
|
||||
if c.RandBool() {
|
||||
*s = nil
|
||||
} else {
|
||||
*s = &interfacesInnerInstance{X: c.Float64()}
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
type aliasAliasInterfaceInstance struct {
|
||||
X int
|
||||
}
|
||||
|
||||
func (i *aliasAliasInterfaceInstance) DeepCopyInterface() aliases.Interface {
|
||||
if i == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return &aliasAliasInterfaceInstance{X: i.X}
|
||||
}
|
||||
|
||||
func (i *aliasAliasInterfaceInstance) DeepCopyAliasInterface() aliases.AliasInterface {
|
||||
if i == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return &aliasAliasInterfaceInstance{X: i.X}
|
||||
}
|
||||
|
||||
func (i *aliasAliasInterfaceInstance) DeepCopyAliasAliasInterface() aliases.AliasAliasInterface {
|
||||
if i == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return &aliasAliasInterfaceInstance{X: i.X}
|
||||
}
|
||||
|
||||
type interfacesInnerInstance struct {
|
||||
X float64
|
||||
}
|
||||
|
||||
func (i *interfacesInnerInstance) DeepCopyInner() interfaces.Inner {
|
||||
if i == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return &interfacesInnerInstance{X: i.X}
|
||||
}
|
||||
|
||||
func (i *interfacesInnerInstance) Function() float64 {
|
||||
return i.X
|
||||
}
|
29
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/interfaces/doc.go
generated
vendored
29
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/interfaces/doc.go
generated
vendored
@@ -1,29 +0,0 @@
|
||||
/*
|
||||
Copyright 2017 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// +k8s:deepcopy-gen=package
|
||||
|
||||
// This is a test package.
|
||||
package interfaces
|
||||
|
||||
type Inner interface {
|
||||
Function() float64
|
||||
DeepCopyInner() Inner
|
||||
}
|
||||
|
||||
type Ttest struct {
|
||||
I []Inner
|
||||
}
|
46
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/interfaces/zz_generated.go
generated
vendored
46
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/interfaces/zz_generated.go
generated
vendored
@@ -1,46 +0,0 @@
|
||||
// +build !ignore_autogenerated
|
||||
|
||||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by deepcopy-gen. DO NOT EDIT.
|
||||
|
||||
package interfaces
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Ttest) DeepCopyInto(out *Ttest) {
|
||||
*out = *in
|
||||
if in.I != nil {
|
||||
in, out := &in.I, &out.I
|
||||
*out = make([]Inner, len(*in))
|
||||
for i := range *in {
|
||||
if (*in)[i] != nil {
|
||||
(*out)[i] = (*in)[i].DeepCopyInner()
|
||||
}
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ttest.
|
||||
func (in *Ttest) DeepCopy() *Ttest {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Ttest)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
43
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/maps/doc.go
generated
vendored
43
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/maps/doc.go
generated
vendored
@@ -1,43 +0,0 @@
|
||||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// +k8s:deepcopy-gen=package
|
||||
|
||||
// This is a test package.
|
||||
package maps
|
||||
|
||||
type Ttest struct {
|
||||
Byte map[string]byte
|
||||
//Int8 map[string]int8 //TODO: int8 becomes byte in SnippetWriter
|
||||
Int16 map[string]int16
|
||||
Int32 map[string]int32
|
||||
Int64 map[string]int64
|
||||
Uint8 map[string]uint8
|
||||
Uint16 map[string]uint16
|
||||
Uint32 map[string]uint32
|
||||
Uint64 map[string]uint64
|
||||
Float32 map[string]float32
|
||||
Float64 map[string]float64
|
||||
String map[string]string
|
||||
StringPtr map[string]*string
|
||||
StringPtrPtr map[string]**string
|
||||
Map map[string]map[string]string
|
||||
MapPtr map[string]*map[string]string
|
||||
Slice map[string][]string
|
||||
SlicePtr map[string]*[]string
|
||||
Struct map[string]Ttest
|
||||
StructPtr map[string]*Ttest
|
||||
}
|
242
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/maps/zz_generated.go
generated
vendored
242
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/maps/zz_generated.go
generated
vendored
@@ -1,242 +0,0 @@
|
||||
// +build !ignore_autogenerated
|
||||
|
||||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by deepcopy-gen. DO NOT EDIT.
|
||||
|
||||
package maps
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Ttest) DeepCopyInto(out *Ttest) {
|
||||
*out = *in
|
||||
if in.Byte != nil {
|
||||
in, out := &in.Byte, &out.Byte
|
||||
*out = make(map[string]byte, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.Int16 != nil {
|
||||
in, out := &in.Int16, &out.Int16
|
||||
*out = make(map[string]int16, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.Int32 != nil {
|
||||
in, out := &in.Int32, &out.Int32
|
||||
*out = make(map[string]int32, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.Int64 != nil {
|
||||
in, out := &in.Int64, &out.Int64
|
||||
*out = make(map[string]int64, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.Uint8 != nil {
|
||||
in, out := &in.Uint8, &out.Uint8
|
||||
*out = make(map[string]byte, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.Uint16 != nil {
|
||||
in, out := &in.Uint16, &out.Uint16
|
||||
*out = make(map[string]uint16, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.Uint32 != nil {
|
||||
in, out := &in.Uint32, &out.Uint32
|
||||
*out = make(map[string]uint32, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.Uint64 != nil {
|
||||
in, out := &in.Uint64, &out.Uint64
|
||||
*out = make(map[string]uint64, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.Float32 != nil {
|
||||
in, out := &in.Float32, &out.Float32
|
||||
*out = make(map[string]float32, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.Float64 != nil {
|
||||
in, out := &in.Float64, &out.Float64
|
||||
*out = make(map[string]float64, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.String != nil {
|
||||
in, out := &in.String, &out.String
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.StringPtr != nil {
|
||||
in, out := &in.StringPtr, &out.StringPtr
|
||||
*out = make(map[string]*string, len(*in))
|
||||
for key, val := range *in {
|
||||
var outVal *string
|
||||
if val == nil {
|
||||
(*out)[key] = nil
|
||||
} else {
|
||||
in, out := &val, &outVal
|
||||
*out = new(string)
|
||||
**out = **in
|
||||
}
|
||||
(*out)[key] = outVal
|
||||
}
|
||||
}
|
||||
if in.StringPtrPtr != nil {
|
||||
in, out := &in.StringPtrPtr, &out.StringPtrPtr
|
||||
*out = make(map[string]**string, len(*in))
|
||||
for key, val := range *in {
|
||||
var outVal **string
|
||||
if val == nil {
|
||||
(*out)[key] = nil
|
||||
} else {
|
||||
in, out := &val, &outVal
|
||||
*out = new(*string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = new(string)
|
||||
**out = **in
|
||||
}
|
||||
}
|
||||
(*out)[key] = outVal
|
||||
}
|
||||
}
|
||||
if in.Map != nil {
|
||||
in, out := &in.Map, &out.Map
|
||||
*out = make(map[string]map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
var outVal map[string]string
|
||||
if val == nil {
|
||||
(*out)[key] = nil
|
||||
} else {
|
||||
in, out := &val, &outVal
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
(*out)[key] = outVal
|
||||
}
|
||||
}
|
||||
if in.MapPtr != nil {
|
||||
in, out := &in.MapPtr, &out.MapPtr
|
||||
*out = make(map[string]*map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
var outVal *map[string]string
|
||||
if val == nil {
|
||||
(*out)[key] = nil
|
||||
} else {
|
||||
in, out := &val, &outVal
|
||||
*out = new(map[string]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
}
|
||||
(*out)[key] = outVal
|
||||
}
|
||||
}
|
||||
if in.Slice != nil {
|
||||
in, out := &in.Slice, &out.Slice
|
||||
*out = make(map[string][]string, len(*in))
|
||||
for key, val := range *in {
|
||||
var outVal []string
|
||||
if val == nil {
|
||||
(*out)[key] = nil
|
||||
} else {
|
||||
in, out := &val, &outVal
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
(*out)[key] = outVal
|
||||
}
|
||||
}
|
||||
if in.SlicePtr != nil {
|
||||
in, out := &in.SlicePtr, &out.SlicePtr
|
||||
*out = make(map[string]*[]string, len(*in))
|
||||
for key, val := range *in {
|
||||
var outVal *[]string
|
||||
if val == nil {
|
||||
(*out)[key] = nil
|
||||
} else {
|
||||
in, out := &val, &outVal
|
||||
*out = new([]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
}
|
||||
(*out)[key] = outVal
|
||||
}
|
||||
}
|
||||
if in.Struct != nil {
|
||||
in, out := &in.Struct, &out.Struct
|
||||
*out = make(map[string]Ttest, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = *val.DeepCopy()
|
||||
}
|
||||
}
|
||||
if in.StructPtr != nil {
|
||||
in, out := &in.StructPtr, &out.StructPtr
|
||||
*out = make(map[string]*Ttest, len(*in))
|
||||
for key, val := range *in {
|
||||
var outVal *Ttest
|
||||
if val == nil {
|
||||
(*out)[key] = nil
|
||||
} else {
|
||||
in, out := &val, &outVal
|
||||
*out = new(Ttest)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
(*out)[key] = outVal
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ttest.
|
||||
func (in *Ttest) DeepCopy() *Ttest {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Ttest)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
25
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/otherpkg/interfaces.go
generated
vendored
25
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/otherpkg/interfaces.go
generated
vendored
@@ -1,25 +0,0 @@
|
||||
/*
|
||||
Copyright 2017 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package otherpkg
|
||||
|
||||
type Object interface {
|
||||
DeepCopyObject() Object
|
||||
}
|
||||
|
||||
type List interface {
|
||||
DeepCopyList() List
|
||||
}
|
157
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/output_test.go
generated
vendored
157
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/output_test.go
generated
vendored
@@ -1,157 +0,0 @@
|
||||
package output_tests
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/davecgh/go-spew/spew"
|
||||
"github.com/google/gofuzz"
|
||||
|
||||
"k8s.io/gengo/examples/deepcopy-gen/output_tests/aliases"
|
||||
"k8s.io/gengo/examples/deepcopy-gen/output_tests/builtins"
|
||||
"k8s.io/gengo/examples/deepcopy-gen/output_tests/interfaces"
|
||||
"k8s.io/gengo/examples/deepcopy-gen/output_tests/maps"
|
||||
"k8s.io/gengo/examples/deepcopy-gen/output_tests/pointer"
|
||||
"k8s.io/gengo/examples/deepcopy-gen/output_tests/slices"
|
||||
"k8s.io/gengo/examples/deepcopy-gen/output_tests/structs"
|
||||
)
|
||||
|
||||
func TestWithValueFuzzer(t *testing.T) {
|
||||
tests := []interface{}{
|
||||
aliases.Ttest{},
|
||||
builtins.Ttest{},
|
||||
interfaces.Ttest{},
|
||||
maps.Ttest{},
|
||||
pointer.Ttest{},
|
||||
slices.Ttest{},
|
||||
structs.Ttest{},
|
||||
}
|
||||
|
||||
fuzzer := fuzz.New()
|
||||
fuzzer.NilChance(0.5)
|
||||
fuzzer.NumElements(0, 2)
|
||||
fuzzer.Funcs(interfaceFuzzers...)
|
||||
|
||||
for _, test := range tests {
|
||||
t.Run(fmt.Sprintf("%T", test), func(t *testing.T) {
|
||||
N := 1000
|
||||
for i := 0; i < N; i++ {
|
||||
original := reflect.New(reflect.TypeOf(test)).Interface()
|
||||
|
||||
fuzzer.Fuzz(original)
|
||||
|
||||
reflectCopy := ReflectDeepCopy(original)
|
||||
|
||||
if !reflect.DeepEqual(original, reflectCopy) {
|
||||
t.Errorf("original and reflectCopy are different:\n\n original = %s\n\n jsonCopy = %s", spew.Sdump(original), spew.Sdump(reflectCopy))
|
||||
}
|
||||
|
||||
deepCopy := reflect.ValueOf(original).MethodByName("DeepCopy").Call(nil)[0].Interface()
|
||||
|
||||
if !reflect.DeepEqual(original, deepCopy) {
|
||||
t.Fatalf("original and deepCopy are different:\n\n original = %s\n\n deepCopy() = %s", spew.Sdump(original), spew.Sdump(deepCopy))
|
||||
}
|
||||
|
||||
ValueFuzz(original)
|
||||
|
||||
if !reflect.DeepEqual(reflectCopy, deepCopy) {
|
||||
t.Fatalf("reflectCopy and deepCopy are different:\n\n origin = %s\n\n jsonCopy() = %s", spew.Sdump(original), spew.Sdump(deepCopy))
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkReflectDeepCopy(b *testing.B) {
|
||||
fourtytwo := "fourtytwo"
|
||||
fourtytwoPtr := &fourtytwo
|
||||
var nilMap map[string]string
|
||||
var nilSlice []string
|
||||
mapPtr := &map[string]string{"0": "fourtytwo", "1": "fourtytwo"}
|
||||
slicePtr := &[]string{"fourtytwo", "fourtytwo", "fourtytwo"}
|
||||
structPtr := &pointer.Ttest{
|
||||
Builtin: &fourtytwo,
|
||||
Ptr: &fourtytwoPtr,
|
||||
}
|
||||
|
||||
tests := []interface{}{
|
||||
maps.Ttest{
|
||||
Byte: map[string]byte{"0": 42, "1": 42, "3": 42},
|
||||
Int16: map[string]int16{"0": 42, "1": 42, "3": 42},
|
||||
Int32: map[string]int32{"0": 42, "1": 42, "3": 42},
|
||||
Int64: map[string]int64{"0": 42, "1": 42, "3": 42},
|
||||
Uint8: map[string]uint8{"0": 42, "1": 42, "3": 42},
|
||||
Uint16: map[string]uint16{"0": 42, "1": 42, "3": 42},
|
||||
Uint32: map[string]uint32{"0": 42, "1": 42, "3": 42},
|
||||
Uint64: map[string]uint64{"0": 42, "1": 42, "3": 42},
|
||||
Float32: map[string]float32{"0": 42.0, "1": 42.0, "3": 42.0},
|
||||
Float64: map[string]float64{"0": 42, "1": 42, "3": 42},
|
||||
String: map[string]string{"0": "fourtytwo", "1": "fourtytwo", "3": "fourtytwo"},
|
||||
StringPtr: map[string]*string{"0": &fourtytwo, "1": &fourtytwo, "3": &fourtytwo},
|
||||
StringPtrPtr: map[string]**string{"0": &fourtytwoPtr, "1": &fourtytwoPtr, "3": &fourtytwoPtr},
|
||||
Map: map[string]map[string]string{"0": nil, "1": {"a": fourtytwo, "b": fourtytwo}, "3": {}},
|
||||
MapPtr: map[string]*map[string]string{"0": nil, "1": {"a": fourtytwo, "b": fourtytwo}, "3": &nilMap},
|
||||
Slice: map[string][]string{"0": nil, "1": {"a", "b"}, "2": {}},
|
||||
SlicePtr: map[string]*[]string{"0": nil, "1": {"a", "b"}, "2": &nilSlice},
|
||||
Struct: map[string]maps.Ttest{"0": {}, "1": {Byte: map[string]byte{"0": 42, "1": 42, "3": 42}}},
|
||||
StructPtr: map[string]*maps.Ttest{"0": nil, "1": {}, "2": {Byte: map[string]byte{"0": 42, "1": 42, "3": 42}}},
|
||||
},
|
||||
slices.Ttest{
|
||||
Byte: []byte{42, 42, 42},
|
||||
Int16: []int16{42, 42, 42},
|
||||
Int32: []int32{42, 42, 42},
|
||||
Int64: []int64{42, 42, 42},
|
||||
Uint8: []uint8{42, 42, 42},
|
||||
Uint16: []uint16{42, 42, 42},
|
||||
Uint32: []uint32{42, 42, 42},
|
||||
Uint64: []uint64{42, 42, 42},
|
||||
Float32: []float32{42.0, 42.0, 42.0},
|
||||
Float64: []float64{42, 42, 42},
|
||||
String: []string{"fourtytwo", "fourtytwo", "fourtytwo"},
|
||||
StringPtr: []*string{&fourtytwo, &fourtytwo, &fourtytwo},
|
||||
StringPtrPtr: []**string{&fourtytwoPtr, &fourtytwoPtr, &fourtytwoPtr},
|
||||
Map: []map[string]string{nil, {"a": fourtytwo, "b": fourtytwo}, {}},
|
||||
MapPtr: []*map[string]string{nil, {"a": fourtytwo, "b": fourtytwo}, &nilMap},
|
||||
Slice: [][]string{nil, {"a", "b"}, {}},
|
||||
SlicePtr: []*[]string{nil, {"a", "b"}, &nilSlice},
|
||||
Struct: []slices.Ttest{{}, {Byte: []byte{42, 42, 42}}},
|
||||
StructPtr: []*slices.Ttest{nil, {}, {Byte: []byte{42, 42, 42}}},
|
||||
},
|
||||
pointer.Ttest{
|
||||
Builtin: &fourtytwo,
|
||||
Ptr: &fourtytwoPtr,
|
||||
Map: &map[string]string{"0": "fourtytwo", "1": "fourtytwo"},
|
||||
Slice: &[]string{"fourtytwo", "fourtytwo", "fourtytwo"},
|
||||
MapPtr: &mapPtr,
|
||||
SlicePtr: &slicePtr,
|
||||
Struct: &pointer.Ttest{
|
||||
Builtin: &fourtytwo,
|
||||
Ptr: &fourtytwoPtr,
|
||||
},
|
||||
StructPtr: &structPtr,
|
||||
},
|
||||
}
|
||||
|
||||
fuzzer := fuzz.New()
|
||||
fuzzer.NilChance(0.5)
|
||||
fuzzer.NumElements(0, 2)
|
||||
fuzzer.Funcs(interfaceFuzzers...)
|
||||
|
||||
for _, test := range tests {
|
||||
b.Run(fmt.Sprintf("%T", test), func(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
switch t := test.(type) {
|
||||
case maps.Ttest:
|
||||
t.DeepCopy()
|
||||
case slices.Ttest:
|
||||
t.DeepCopy()
|
||||
case pointer.Ttest:
|
||||
t.DeepCopy()
|
||||
default:
|
||||
b.Fatalf("missing type case in switch for %T", t)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
31
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/pointer/doc.go
generated
vendored
31
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/pointer/doc.go
generated
vendored
@@ -1,31 +0,0 @@
|
||||
/*
|
||||
Copyright 2017 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// +k8s:deepcopy-gen=package
|
||||
|
||||
// This is a test package.
|
||||
package pointer
|
||||
|
||||
type Ttest struct {
|
||||
Builtin *string
|
||||
Ptr **string
|
||||
Map *map[string]string
|
||||
Slice *[]string
|
||||
MapPtr **map[string]string
|
||||
SlicePtr **[]string
|
||||
Struct *Ttest
|
||||
StructPtr **Ttest
|
||||
}
|
113
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/pointer/zz_generated.go
generated
vendored
113
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/pointer/zz_generated.go
generated
vendored
@@ -1,113 +0,0 @@
|
||||
// +build !ignore_autogenerated
|
||||
|
||||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by deepcopy-gen. DO NOT EDIT.
|
||||
|
||||
package pointer
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Ttest) DeepCopyInto(out *Ttest) {
|
||||
*out = *in
|
||||
if in.Builtin != nil {
|
||||
in, out := &in.Builtin, &out.Builtin
|
||||
*out = new(string)
|
||||
**out = **in
|
||||
}
|
||||
if in.Ptr != nil {
|
||||
in, out := &in.Ptr, &out.Ptr
|
||||
*out = new(*string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = new(string)
|
||||
**out = **in
|
||||
}
|
||||
}
|
||||
if in.Map != nil {
|
||||
in, out := &in.Map, &out.Map
|
||||
*out = new(map[string]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
}
|
||||
if in.Slice != nil {
|
||||
in, out := &in.Slice, &out.Slice
|
||||
*out = new([]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
}
|
||||
if in.MapPtr != nil {
|
||||
in, out := &in.MapPtr, &out.MapPtr
|
||||
*out = new(*map[string]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = new(map[string]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if in.SlicePtr != nil {
|
||||
in, out := &in.SlicePtr, &out.SlicePtr
|
||||
*out = new(*[]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = new([]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
}
|
||||
}
|
||||
if in.Struct != nil {
|
||||
in, out := &in.Struct, &out.Struct
|
||||
*out = new(Ttest)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.StructPtr != nil {
|
||||
in, out := &in.StructPtr, &out.StructPtr
|
||||
*out = new(*Ttest)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = new(Ttest)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ttest.
|
||||
func (in *Ttest) DeepCopy() *Ttest {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Ttest)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
81
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/reflect_deepcopy.go
generated
vendored
81
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/reflect_deepcopy.go
generated
vendored
@@ -1,81 +0,0 @@
|
||||
/*
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package output_tests
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
)
|
||||
|
||||
// ReflectDeepCopy deep copies the object using reflection.
|
||||
func ReflectDeepCopy(in interface{}) interface{} {
|
||||
return reflectDeepCopy(reflect.ValueOf(in)).Interface()
|
||||
}
|
||||
|
||||
func reflectDeepCopy(src reflect.Value) reflect.Value {
|
||||
switch src.Kind() {
|
||||
case reflect.Interface, reflect.Ptr, reflect.Map, reflect.Slice:
|
||||
if src.IsNil() {
|
||||
return src
|
||||
}
|
||||
}
|
||||
|
||||
switch src.Kind() {
|
||||
case reflect.Chan, reflect.Func, reflect.UnsafePointer, reflect.Uintptr:
|
||||
panic(fmt.Sprintf("cannot deep copy kind: %s", src.Kind()))
|
||||
case reflect.Array:
|
||||
dst := reflect.New(src.Type())
|
||||
for i := 0; i < src.Len(); i++ {
|
||||
dst.Elem().Index(i).Set(reflectDeepCopy(src.Index(i)))
|
||||
}
|
||||
return dst.Elem()
|
||||
case reflect.Interface:
|
||||
return reflectDeepCopy(src.Elem())
|
||||
case reflect.Map:
|
||||
dst := reflect.MakeMap(src.Type())
|
||||
for _, k := range src.MapKeys() {
|
||||
dst.SetMapIndex(k, reflectDeepCopy(src.MapIndex(k)))
|
||||
}
|
||||
return dst
|
||||
case reflect.Ptr:
|
||||
dst := reflect.New(src.Type().Elem())
|
||||
dst.Elem().Set(reflectDeepCopy(src.Elem()))
|
||||
return dst
|
||||
case reflect.Slice:
|
||||
dst := reflect.MakeSlice(src.Type(), 0, src.Len())
|
||||
for i := 0; i < src.Len(); i++ {
|
||||
dst = reflect.Append(dst, reflectDeepCopy(src.Index(i)))
|
||||
}
|
||||
return dst
|
||||
case reflect.Struct:
|
||||
dst := reflect.New(src.Type())
|
||||
for i := 0; i < src.NumField(); i++ {
|
||||
if !dst.Elem().Field(i).CanSet() {
|
||||
// Can't set private fields. At this point, the
|
||||
// best we can do is a shallow copy. For
|
||||
// example, time.Time is a value type with
|
||||
// private members that can be shallow copied.
|
||||
return src
|
||||
}
|
||||
dst.Elem().Field(i).Set(reflectDeepCopy(src.Field(i)))
|
||||
}
|
||||
return dst.Elem()
|
||||
default:
|
||||
// Value types like numbers, booleans, and strings.
|
||||
return src
|
||||
}
|
||||
}
|
43
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/slices/doc.go
generated
vendored
43
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/slices/doc.go
generated
vendored
@@ -1,43 +0,0 @@
|
||||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// +k8s:deepcopy-gen=package
|
||||
|
||||
// This is a test package.
|
||||
package slices
|
||||
|
||||
type Ttest struct {
|
||||
Byte []byte
|
||||
//Int8 []int8 //TODO: int8 becomes byte in SnippetWriter
|
||||
Int16 []int16
|
||||
Int32 []int32
|
||||
Int64 []int64
|
||||
Uint8 []uint8
|
||||
Uint16 []uint16
|
||||
Uint32 []uint32
|
||||
Uint64 []uint64
|
||||
Float32 []float32
|
||||
Float64 []float64
|
||||
String []string
|
||||
StringPtr []*string
|
||||
StringPtrPtr []**string
|
||||
Map []map[string]string
|
||||
MapPtr []*map[string]string
|
||||
Slice [][]string
|
||||
SlicePtr []*[]string
|
||||
Struct []Ttest
|
||||
StructPtr []*Ttest
|
||||
}
|
192
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/slices/zz_generated.go
generated
vendored
192
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/slices/zz_generated.go
generated
vendored
@@ -1,192 +0,0 @@
|
||||
// +build !ignore_autogenerated
|
||||
|
||||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by deepcopy-gen. DO NOT EDIT.
|
||||
|
||||
package slices
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Ttest) DeepCopyInto(out *Ttest) {
|
||||
*out = *in
|
||||
if in.Byte != nil {
|
||||
in, out := &in.Byte, &out.Byte
|
||||
*out = make([]byte, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.Int16 != nil {
|
||||
in, out := &in.Int16, &out.Int16
|
||||
*out = make([]int16, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.Int32 != nil {
|
||||
in, out := &in.Int32, &out.Int32
|
||||
*out = make([]int32, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.Int64 != nil {
|
||||
in, out := &in.Int64, &out.Int64
|
||||
*out = make([]int64, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.Uint8 != nil {
|
||||
in, out := &in.Uint8, &out.Uint8
|
||||
*out = make([]byte, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.Uint16 != nil {
|
||||
in, out := &in.Uint16, &out.Uint16
|
||||
*out = make([]uint16, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.Uint32 != nil {
|
||||
in, out := &in.Uint32, &out.Uint32
|
||||
*out = make([]uint32, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.Uint64 != nil {
|
||||
in, out := &in.Uint64, &out.Uint64
|
||||
*out = make([]uint64, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.Float32 != nil {
|
||||
in, out := &in.Float32, &out.Float32
|
||||
*out = make([]float32, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.Float64 != nil {
|
||||
in, out := &in.Float64, &out.Float64
|
||||
*out = make([]float64, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.String != nil {
|
||||
in, out := &in.String, &out.String
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.StringPtr != nil {
|
||||
in, out := &in.StringPtr, &out.StringPtr
|
||||
*out = make([]*string, len(*in))
|
||||
for i := range *in {
|
||||
if (*in)[i] != nil {
|
||||
in, out := &(*in)[i], &(*out)[i]
|
||||
*out = new(string)
|
||||
**out = **in
|
||||
}
|
||||
}
|
||||
}
|
||||
if in.StringPtrPtr != nil {
|
||||
in, out := &in.StringPtrPtr, &out.StringPtrPtr
|
||||
*out = make([]**string, len(*in))
|
||||
for i := range *in {
|
||||
if (*in)[i] != nil {
|
||||
in, out := &(*in)[i], &(*out)[i]
|
||||
*out = new(*string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = new(string)
|
||||
**out = **in
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if in.Map != nil {
|
||||
in, out := &in.Map, &out.Map
|
||||
*out = make([]map[string]string, len(*in))
|
||||
for i := range *in {
|
||||
if (*in)[i] != nil {
|
||||
in, out := &(*in)[i], &(*out)[i]
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if in.MapPtr != nil {
|
||||
in, out := &in.MapPtr, &out.MapPtr
|
||||
*out = make([]*map[string]string, len(*in))
|
||||
for i := range *in {
|
||||
if (*in)[i] != nil {
|
||||
in, out := &(*in)[i], &(*out)[i]
|
||||
*out = new(map[string]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if in.Slice != nil {
|
||||
in, out := &in.Slice, &out.Slice
|
||||
*out = make([][]string, len(*in))
|
||||
for i := range *in {
|
||||
if (*in)[i] != nil {
|
||||
in, out := &(*in)[i], &(*out)[i]
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
}
|
||||
}
|
||||
if in.SlicePtr != nil {
|
||||
in, out := &in.SlicePtr, &out.SlicePtr
|
||||
*out = make([]*[]string, len(*in))
|
||||
for i := range *in {
|
||||
if (*in)[i] != nil {
|
||||
in, out := &(*in)[i], &(*out)[i]
|
||||
*out = new([]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if in.Struct != nil {
|
||||
in, out := &in.Struct, &out.Struct
|
||||
*out = make([]Ttest, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
if in.StructPtr != nil {
|
||||
in, out := &in.StructPtr, &out.StructPtr
|
||||
*out = make([]*Ttest, len(*in))
|
||||
for i := range *in {
|
||||
if (*in)[i] != nil {
|
||||
in, out := &(*in)[i], &(*out)[i]
|
||||
*out = new(Ttest)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ttest.
|
||||
func (in *Ttest) DeepCopy() *Ttest {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Ttest)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
40
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/structs/doc.go
generated
vendored
40
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/structs/doc.go
generated
vendored
@@ -1,40 +0,0 @@
|
||||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// +k8s:deepcopy-gen=package
|
||||
|
||||
// This is a test package.
|
||||
package structs
|
||||
|
||||
type Inner struct {
|
||||
Byte byte
|
||||
//Int8 int8 //TODO: int8 becomes byte in SnippetWriter
|
||||
Int16 int16
|
||||
Int32 int32
|
||||
Int64 int64
|
||||
Uint8 uint8
|
||||
Uint16 uint16
|
||||
Uint32 uint32
|
||||
Uint64 uint64
|
||||
Float32 float32
|
||||
Float64 float64
|
||||
String string
|
||||
}
|
||||
|
||||
type Ttest struct {
|
||||
Inner1 Inner
|
||||
Inner2 Inner
|
||||
}
|
55
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/structs/zz_generated.go
generated
vendored
55
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/structs/zz_generated.go
generated
vendored
@@ -1,55 +0,0 @@
|
||||
// +build !ignore_autogenerated
|
||||
|
||||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by deepcopy-gen. DO NOT EDIT.
|
||||
|
||||
package structs
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Inner) DeepCopyInto(out *Inner) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Inner.
|
||||
func (in *Inner) DeepCopy() *Inner {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Inner)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Ttest) DeepCopyInto(out *Ttest) {
|
||||
*out = *in
|
||||
out.Inner1 = in.Inner1
|
||||
out.Inner2 = in.Inner2
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ttest.
|
||||
func (in *Ttest) DeepCopy() *Ttest {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Ttest)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
86
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/value_fuzzer.go
generated
vendored
86
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/value_fuzzer.go
generated
vendored
@@ -1,86 +0,0 @@
|
||||
/*
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package output_tests
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
)
|
||||
|
||||
// ValueFuzz recursively changes all basic type values in an object. Any kind of references will not
|
||||
// be touched, i.e. the addresses of slices, maps, pointers will stay unchanged.
|
||||
func ValueFuzz(obj interface{}) {
|
||||
valueFuzz(reflect.ValueOf(obj))
|
||||
}
|
||||
|
||||
func valueFuzz(obj reflect.Value) {
|
||||
switch obj.Kind() {
|
||||
case reflect.Array:
|
||||
for i := 0; i < obj.Len(); i++ {
|
||||
valueFuzz(obj.Index(i))
|
||||
}
|
||||
case reflect.Slice:
|
||||
if obj.IsNil() {
|
||||
// TODO: set non-nil value
|
||||
} else {
|
||||
for i := 0; i < obj.Len(); i++ {
|
||||
valueFuzz(obj.Index(i))
|
||||
}
|
||||
}
|
||||
case reflect.Interface, reflect.Ptr:
|
||||
if obj.IsNil() {
|
||||
// TODO: set non-nil value
|
||||
} else {
|
||||
valueFuzz(obj.Elem())
|
||||
}
|
||||
case reflect.Struct:
|
||||
for i, n := 0, obj.NumField(); i < n; i++ {
|
||||
valueFuzz(obj.Field(i))
|
||||
}
|
||||
case reflect.Map:
|
||||
if obj.IsNil() {
|
||||
// TODO: set non-nil value
|
||||
} else {
|
||||
for _, k := range obj.MapKeys() {
|
||||
// map values are not addressable. We need a copy.
|
||||
v := obj.MapIndex(k)
|
||||
copy := reflect.New(v.Type())
|
||||
copy.Elem().Set(v)
|
||||
valueFuzz(copy.Elem())
|
||||
obj.SetMapIndex(k, copy.Elem())
|
||||
}
|
||||
// TODO: set some new value
|
||||
}
|
||||
case reflect.Func: // ignore, we don't have function types in our API
|
||||
default:
|
||||
if !obj.CanSet() {
|
||||
return
|
||||
}
|
||||
switch obj.Kind() {
|
||||
case reflect.String:
|
||||
obj.SetString(obj.String() + "x")
|
||||
case reflect.Bool:
|
||||
obj.SetBool(!obj.Bool())
|
||||
case reflect.Float32, reflect.Float64:
|
||||
obj.SetFloat(obj.Float()*2.0 + 1.0)
|
||||
case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:
|
||||
obj.SetInt(obj.Int() + 1)
|
||||
case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:
|
||||
obj.SetUint(obj.Uint() + 1)
|
||||
default:
|
||||
}
|
||||
}
|
||||
}
|
171
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/wholepkg/a.go
generated
vendored
171
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/wholepkg/a.go
generated
vendored
@@ -1,171 +0,0 @@
|
||||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package wholepkg
|
||||
|
||||
import "k8s.io/gengo/examples/deepcopy-gen/output_tests/otherpkg"
|
||||
|
||||
// Trivial
|
||||
type Struct_Empty struct{}
|
||||
|
||||
// Only primitives
|
||||
type Struct_Primitives struct {
|
||||
BoolField bool
|
||||
IntField int
|
||||
StringField string
|
||||
FloatField float64
|
||||
}
|
||||
type Struct_Primitives_Alias Struct_Primitives
|
||||
type Struct_Embed_Struct_Primitives struct {
|
||||
Struct_Primitives
|
||||
}
|
||||
type Struct_Embed_Int struct {
|
||||
int
|
||||
}
|
||||
type Struct_Struct_Primitives struct {
|
||||
StructField Struct_Primitives
|
||||
}
|
||||
|
||||
// Manual DeepCopy method
|
||||
type ManualStruct struct {
|
||||
StringField string
|
||||
}
|
||||
|
||||
func (m ManualStruct) DeepCopy() ManualStruct {
|
||||
return m
|
||||
}
|
||||
|
||||
type ManualStruct_Alias ManualStruct
|
||||
|
||||
type Struct_Embed_ManualStruct struct {
|
||||
ManualStruct
|
||||
}
|
||||
|
||||
// Only pointers to primitives
|
||||
type Struct_PrimitivePointers struct {
|
||||
BoolPtrField *bool
|
||||
IntPtrField *int
|
||||
StringPtrField *string
|
||||
FloatPtrField *float64
|
||||
}
|
||||
type Struct_PrimitivePointers_Alias Struct_PrimitivePointers
|
||||
type Struct_Embed_Struct_PrimitivePointers struct {
|
||||
Struct_PrimitivePointers
|
||||
}
|
||||
type Struct_Embed_Pointer struct {
|
||||
*int
|
||||
}
|
||||
type Struct_Struct_PrimitivePointers struct {
|
||||
StructField Struct_PrimitivePointers
|
||||
}
|
||||
|
||||
// Manual DeepCopy method
|
||||
type ManualSlice []string
|
||||
|
||||
func (m ManualSlice) DeepCopy() ManualSlice {
|
||||
r := make(ManualSlice, len(m))
|
||||
copy(r, m)
|
||||
return r
|
||||
}
|
||||
|
||||
// Slices
|
||||
type Struct_Slices struct {
|
||||
SliceBoolField []bool
|
||||
SliceByteField []byte
|
||||
SliceIntField []int
|
||||
SliceStringField []string
|
||||
SliceFloatField []float64
|
||||
SliceStructPrimitivesField []Struct_Primitives
|
||||
SliceStructPrimitivesAliasField []Struct_Primitives_Alias
|
||||
SliceStructPrimitivePointersField []Struct_PrimitivePointers
|
||||
SliceStructPrimitivePointersAliasField []Struct_PrimitivePointers_Alias
|
||||
SliceSliceIntField [][]int
|
||||
SliceManualStructField []ManualStruct
|
||||
ManualSliceField ManualSlice
|
||||
}
|
||||
type Struct_Slices_Alias Struct_Slices
|
||||
type Struct_Embed_Struct_Slices struct {
|
||||
Struct_Slices
|
||||
}
|
||||
type Struct_Struct_Slices struct {
|
||||
StructField Struct_Slices
|
||||
}
|
||||
|
||||
// Everything
|
||||
type Struct_Everything struct {
|
||||
BoolField bool
|
||||
IntField int
|
||||
StringField string
|
||||
FloatField float64
|
||||
StructField Struct_Primitives
|
||||
EmptyStructField Struct_Empty
|
||||
ManualStructField ManualStruct
|
||||
ManualStructAliasField ManualStruct_Alias
|
||||
BoolPtrField *bool
|
||||
IntPtrField *int
|
||||
StringPtrField *string
|
||||
FloatPtrField *float64
|
||||
PrimitivePointersField Struct_PrimitivePointers
|
||||
ManualStructPtrField *ManualStruct
|
||||
ManualStructAliasPtrField *ManualStruct_Alias
|
||||
SliceBoolField []bool
|
||||
SliceByteField []byte
|
||||
SliceIntField []int
|
||||
SliceStringField []string
|
||||
SliceFloatField []float64
|
||||
SlicesField Struct_Slices
|
||||
SliceManualStructField []ManualStruct
|
||||
ManualSliceField ManualSlice
|
||||
}
|
||||
|
||||
// An Object
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/gengo/examples/deepcopy-gen/output_tests/otherpkg.Object
|
||||
type Struct_ExplicitObject struct {
|
||||
x int
|
||||
}
|
||||
|
||||
// An Object which is used a non-pointer
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/gengo/examples/deepcopy-gen/output_tests/otherpkg.Object
|
||||
// +k8s:deepcopy-gen:nonpointer-interfaces=true
|
||||
type Struct_NonPointerExplicitObject struct {
|
||||
x int
|
||||
}
|
||||
|
||||
// +k8s:deepcopy-gen=false
|
||||
type Struct_TypeMeta struct {
|
||||
}
|
||||
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/gengo/examples/deepcopy-gen/output_tests/otherpkg.Object
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/gengo/examples/deepcopy-gen/output_tests/otherpkg.List
|
||||
type Struct_ObjectAndList struct {
|
||||
}
|
||||
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/gengo/examples/deepcopy-gen/output_tests/otherpkg.Object
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/gengo/examples/deepcopy-gen/output_tests/otherpkg.Object
|
||||
type Struct_ObjectAndObject struct {
|
||||
}
|
||||
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/gengo/examples/deepcopy-gen/output_tests/wholepkg.Selector
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/gengo/examples/deepcopy-gen/output_tests/otherpkg.Object
|
||||
type Struct_ExplicitSelectorExplicitObject struct {
|
||||
Struct_TypeMeta
|
||||
}
|
||||
|
||||
type Struct_Interfaces struct {
|
||||
ObjectField otherpkg.Object
|
||||
NilObjectField otherpkg.Object
|
||||
SelectorField Selector
|
||||
}
|
20
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/wholepkg/b.go
generated
vendored
20
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/wholepkg/b.go
generated
vendored
@@ -1,20 +0,0 @@
|
||||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package wholepkg
|
||||
|
||||
// Another type in another file.
|
||||
type Struct_B struct{}
|
145
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/wholepkg/deepcopy_test.go
generated
vendored
145
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/wholepkg/deepcopy_test.go
generated
vendored
@@ -1,145 +0,0 @@
|
||||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package wholepkg
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
fuzz "github.com/google/gofuzz"
|
||||
)
|
||||
|
||||
func TestDeepCopyPrimitives(t *testing.T) {
|
||||
x := Struct_Primitives{}
|
||||
y := Struct_Primitives{}
|
||||
|
||||
if !reflect.DeepEqual(&x, &y) {
|
||||
t.Errorf("objects should be equal to start, but are not")
|
||||
}
|
||||
|
||||
fuzzer := fuzz.New()
|
||||
fuzzer.Fuzz(&x)
|
||||
fuzzer.Fuzz(&y)
|
||||
|
||||
if reflect.DeepEqual(&x, &y) {
|
||||
t.Errorf("objects should not be equal, but are")
|
||||
}
|
||||
|
||||
x.DeepCopyInto(&y)
|
||||
if !reflect.DeepEqual(&x, &y) {
|
||||
t.Errorf("objects should be equal, but are not")
|
||||
}
|
||||
}
|
||||
|
||||
func TestDeepCopyInterfaceFields(t *testing.T) {
|
||||
x := Struct_Interfaces{}
|
||||
y := Struct_Interfaces{}
|
||||
|
||||
if !reflect.DeepEqual(&x, &y) {
|
||||
t.Errorf("objects should be equal to start, but are not")
|
||||
}
|
||||
|
||||
fuzzer := fuzz.New()
|
||||
|
||||
obj := Struct_ExplicitObject{}
|
||||
fuzzer.Fuzz(&obj)
|
||||
x.ObjectField = &obj
|
||||
|
||||
sel := Struct_ExplicitSelectorExplicitObject{}
|
||||
fuzzer.Fuzz(&sel)
|
||||
x.SelectorField = &sel
|
||||
|
||||
if reflect.DeepEqual(&x, &y) {
|
||||
t.Errorf("objects should not be equal, but are")
|
||||
}
|
||||
|
||||
x.DeepCopyInto(&y)
|
||||
if !reflect.DeepEqual(&x, &y) {
|
||||
t.Errorf("objects should be equal, but are not")
|
||||
}
|
||||
}
|
||||
|
||||
func TestNilCopy(t *testing.T) {
|
||||
var x *Struct_B
|
||||
y := x.DeepCopy()
|
||||
if y != nil {
|
||||
t.Errorf("Expected nil as deepcopy of nil, got %+v", y)
|
||||
}
|
||||
}
|
||||
|
||||
func assertMethod(t *testing.T, typ reflect.Type, name string) {
|
||||
if _, found := typ.MethodByName(name); !found {
|
||||
t.Errorf("Struct_ExplicitObject must have %v method", name)
|
||||
}
|
||||
}
|
||||
|
||||
func assertNotMethod(t *testing.T, typ reflect.Type, name string) {
|
||||
if _, found := typ.MethodByName(name); found {
|
||||
t.Errorf("%v must not have %v method", typ, name)
|
||||
}
|
||||
}
|
||||
|
||||
func TestInterfaceTypes(t *testing.T) {
|
||||
explicitObject := reflect.TypeOf(&Struct_ExplicitObject{})
|
||||
assertMethod(t, explicitObject, "DeepCopyObject")
|
||||
|
||||
typeMeta := reflect.TypeOf(&Struct_TypeMeta{})
|
||||
assertNotMethod(t, typeMeta, "DeepCopy")
|
||||
|
||||
objectAndList := reflect.TypeOf(&Struct_ObjectAndList{})
|
||||
assertMethod(t, objectAndList, "DeepCopyObject")
|
||||
assertMethod(t, objectAndList, "DeepCopyList")
|
||||
|
||||
objectAndObject := reflect.TypeOf(&Struct_ObjectAndObject{})
|
||||
assertMethod(t, objectAndObject, "DeepCopyObject")
|
||||
|
||||
explicitSelectorExplicitObject := reflect.TypeOf(&Struct_ExplicitSelectorExplicitObject{})
|
||||
assertMethod(t, explicitSelectorExplicitObject, "DeepCopySelector")
|
||||
assertMethod(t, explicitSelectorExplicitObject, "DeepCopyObject")
|
||||
}
|
||||
|
||||
func TestInterfaceDeepCopy(t *testing.T) {
|
||||
x := Struct_ExplicitObject{}
|
||||
|
||||
fuzzer := fuzz.New()
|
||||
fuzzer.Fuzz(&x)
|
||||
|
||||
y_obj := x.DeepCopyObject()
|
||||
y, ok := y_obj.(*Struct_ExplicitObject)
|
||||
if !ok {
|
||||
t.Fatalf("epxected Struct_ExplicitObject from Struct_ExplicitObject.DeepCopyObject, got: %t", y_obj)
|
||||
}
|
||||
if !reflect.DeepEqual(y, &x) {
|
||||
t.Error("objects should be equal, but are not")
|
||||
}
|
||||
}
|
||||
|
||||
func TestInterfaceNonPointerDeepCopy(t *testing.T) {
|
||||
x := Struct_NonPointerExplicitObject{}
|
||||
|
||||
fuzzer := fuzz.New()
|
||||
fuzzer.Fuzz(&x)
|
||||
|
||||
y_obj := x.DeepCopyObject()
|
||||
y, ok := y_obj.(Struct_NonPointerExplicitObject)
|
||||
if !ok {
|
||||
t.Fatalf("epxected Struct_NonPointerExplicitObject from Struct_NonPointerExplicitObject.DeepCopyObject, got: %t", y_obj)
|
||||
}
|
||||
if !reflect.DeepEqual(y, x) {
|
||||
t.Error("objects should be equal, but are not")
|
||||
}
|
||||
}
|
20
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/wholepkg/doc.go
generated
vendored
20
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/wholepkg/doc.go
generated
vendored
@@ -1,20 +0,0 @@
|
||||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// +k8s:deepcopy-gen=package
|
||||
|
||||
// This is a test package.
|
||||
package wholepkg
|
21
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/wholepkg/interfaces.go
generated
vendored
21
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/wholepkg/interfaces.go
generated
vendored
@@ -1,21 +0,0 @@
|
||||
/*
|
||||
Copyright 2017 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package wholepkg
|
||||
|
||||
type Selector interface {
|
||||
DeepCopySelector() Selector
|
||||
}
|
760
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/wholepkg/zz_generated.go
generated
vendored
760
vendor/k8s.io/gengo/examples/deepcopy-gen/output_tests/wholepkg/zz_generated.go
generated
vendored
@@ -1,760 +0,0 @@
|
||||
// +build !ignore_autogenerated
|
||||
|
||||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by deepcopy-gen. DO NOT EDIT.
|
||||
|
||||
package wholepkg
|
||||
|
||||
import (
|
||||
otherpkg "k8s.io/gengo/examples/deepcopy-gen/output_tests/otherpkg"
|
||||
)
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in ManualSlice) DeepCopyInto(out *ManualSlice) {
|
||||
{
|
||||
in := &in
|
||||
*out = in.DeepCopy()
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *ManualStruct) DeepCopyInto(out *ManualStruct) {
|
||||
*out = in.DeepCopy()
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *ManualStruct_Alias) DeepCopyInto(out *ManualStruct_Alias) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManualStruct_Alias.
|
||||
func (in *ManualStruct_Alias) DeepCopy() *ManualStruct_Alias {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(ManualStruct_Alias)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_B) DeepCopyInto(out *Struct_B) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_B.
|
||||
func (in *Struct_B) DeepCopy() *Struct_B {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_B)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_Embed_Int) DeepCopyInto(out *Struct_Embed_Int) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_Embed_Int.
|
||||
func (in *Struct_Embed_Int) DeepCopy() *Struct_Embed_Int {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_Embed_Int)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_Embed_ManualStruct) DeepCopyInto(out *Struct_Embed_ManualStruct) {
|
||||
*out = *in
|
||||
out.ManualStruct = in.ManualStruct.DeepCopy()
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_Embed_ManualStruct.
|
||||
func (in *Struct_Embed_ManualStruct) DeepCopy() *Struct_Embed_ManualStruct {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_Embed_ManualStruct)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_Embed_Pointer) DeepCopyInto(out *Struct_Embed_Pointer) {
|
||||
*out = *in
|
||||
if in.int != nil {
|
||||
in, out := &in.int, &out.int
|
||||
*out = new(int)
|
||||
**out = **in
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_Embed_Pointer.
|
||||
func (in *Struct_Embed_Pointer) DeepCopy() *Struct_Embed_Pointer {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_Embed_Pointer)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_Embed_Struct_PrimitivePointers) DeepCopyInto(out *Struct_Embed_Struct_PrimitivePointers) {
|
||||
*out = *in
|
||||
in.Struct_PrimitivePointers.DeepCopyInto(&out.Struct_PrimitivePointers)
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_Embed_Struct_PrimitivePointers.
|
||||
func (in *Struct_Embed_Struct_PrimitivePointers) DeepCopy() *Struct_Embed_Struct_PrimitivePointers {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_Embed_Struct_PrimitivePointers)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_Embed_Struct_Primitives) DeepCopyInto(out *Struct_Embed_Struct_Primitives) {
|
||||
*out = *in
|
||||
out.Struct_Primitives = in.Struct_Primitives
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_Embed_Struct_Primitives.
|
||||
func (in *Struct_Embed_Struct_Primitives) DeepCopy() *Struct_Embed_Struct_Primitives {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_Embed_Struct_Primitives)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_Embed_Struct_Slices) DeepCopyInto(out *Struct_Embed_Struct_Slices) {
|
||||
*out = *in
|
||||
in.Struct_Slices.DeepCopyInto(&out.Struct_Slices)
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_Embed_Struct_Slices.
|
||||
func (in *Struct_Embed_Struct_Slices) DeepCopy() *Struct_Embed_Struct_Slices {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_Embed_Struct_Slices)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_Empty) DeepCopyInto(out *Struct_Empty) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_Empty.
|
||||
func (in *Struct_Empty) DeepCopy() *Struct_Empty {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_Empty)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_Everything) DeepCopyInto(out *Struct_Everything) {
|
||||
*out = *in
|
||||
out.StructField = in.StructField
|
||||
out.EmptyStructField = in.EmptyStructField
|
||||
out.ManualStructField = in.ManualStructField.DeepCopy()
|
||||
out.ManualStructAliasField = in.ManualStructAliasField
|
||||
if in.BoolPtrField != nil {
|
||||
in, out := &in.BoolPtrField, &out.BoolPtrField
|
||||
*out = new(bool)
|
||||
**out = **in
|
||||
}
|
||||
if in.IntPtrField != nil {
|
||||
in, out := &in.IntPtrField, &out.IntPtrField
|
||||
*out = new(int)
|
||||
**out = **in
|
||||
}
|
||||
if in.StringPtrField != nil {
|
||||
in, out := &in.StringPtrField, &out.StringPtrField
|
||||
*out = new(string)
|
||||
**out = **in
|
||||
}
|
||||
if in.FloatPtrField != nil {
|
||||
in, out := &in.FloatPtrField, &out.FloatPtrField
|
||||
*out = new(float64)
|
||||
**out = **in
|
||||
}
|
||||
in.PrimitivePointersField.DeepCopyInto(&out.PrimitivePointersField)
|
||||
if in.ManualStructPtrField != nil {
|
||||
in, out := &in.ManualStructPtrField, &out.ManualStructPtrField
|
||||
x := (*in).DeepCopy()
|
||||
*out = &x
|
||||
}
|
||||
if in.ManualStructAliasPtrField != nil {
|
||||
in, out := &in.ManualStructAliasPtrField, &out.ManualStructAliasPtrField
|
||||
*out = new(ManualStruct_Alias)
|
||||
**out = **in
|
||||
}
|
||||
if in.SliceBoolField != nil {
|
||||
in, out := &in.SliceBoolField, &out.SliceBoolField
|
||||
*out = make([]bool, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.SliceByteField != nil {
|
||||
in, out := &in.SliceByteField, &out.SliceByteField
|
||||
*out = make([]byte, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.SliceIntField != nil {
|
||||
in, out := &in.SliceIntField, &out.SliceIntField
|
||||
*out = make([]int, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.SliceStringField != nil {
|
||||
in, out := &in.SliceStringField, &out.SliceStringField
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.SliceFloatField != nil {
|
||||
in, out := &in.SliceFloatField, &out.SliceFloatField
|
||||
*out = make([]float64, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
in.SlicesField.DeepCopyInto(&out.SlicesField)
|
||||
if in.SliceManualStructField != nil {
|
||||
in, out := &in.SliceManualStructField, &out.SliceManualStructField
|
||||
*out = make([]ManualStruct, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
out.ManualSliceField = in.ManualSliceField.DeepCopy()
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_Everything.
|
||||
func (in *Struct_Everything) DeepCopy() *Struct_Everything {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_Everything)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_ExplicitObject) DeepCopyInto(out *Struct_ExplicitObject) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_ExplicitObject.
|
||||
func (in *Struct_ExplicitObject) DeepCopy() *Struct_ExplicitObject {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_ExplicitObject)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new otherpkg.Object.
|
||||
func (in *Struct_ExplicitObject) DeepCopyObject() otherpkg.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_ExplicitSelectorExplicitObject) DeepCopyInto(out *Struct_ExplicitSelectorExplicitObject) {
|
||||
*out = *in
|
||||
out.Struct_TypeMeta = in.Struct_TypeMeta
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_ExplicitSelectorExplicitObject.
|
||||
func (in *Struct_ExplicitSelectorExplicitObject) DeepCopy() *Struct_ExplicitSelectorExplicitObject {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_ExplicitSelectorExplicitObject)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new otherpkg.Object.
|
||||
func (in *Struct_ExplicitSelectorExplicitObject) DeepCopyObject() otherpkg.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopySelector is an autogenerated deepcopy function, copying the receiver, creating a new Selector.
|
||||
func (in *Struct_ExplicitSelectorExplicitObject) DeepCopySelector() Selector {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_Interfaces) DeepCopyInto(out *Struct_Interfaces) {
|
||||
*out = *in
|
||||
if in.ObjectField != nil {
|
||||
out.ObjectField = in.ObjectField.DeepCopyObject()
|
||||
}
|
||||
if in.NilObjectField != nil {
|
||||
out.NilObjectField = in.NilObjectField.DeepCopyObject()
|
||||
}
|
||||
if in.SelectorField != nil {
|
||||
out.SelectorField = in.SelectorField.DeepCopySelector()
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_Interfaces.
|
||||
func (in *Struct_Interfaces) DeepCopy() *Struct_Interfaces {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_Interfaces)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_NonPointerExplicitObject) DeepCopyInto(out *Struct_NonPointerExplicitObject) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_NonPointerExplicitObject.
|
||||
func (in *Struct_NonPointerExplicitObject) DeepCopy() *Struct_NonPointerExplicitObject {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_NonPointerExplicitObject)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new otherpkg.Object.
|
||||
func (in Struct_NonPointerExplicitObject) DeepCopyObject() otherpkg.Object {
|
||||
return *in.DeepCopy()
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_ObjectAndList) DeepCopyInto(out *Struct_ObjectAndList) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_ObjectAndList.
|
||||
func (in *Struct_ObjectAndList) DeepCopy() *Struct_ObjectAndList {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_ObjectAndList)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyList is an autogenerated deepcopy function, copying the receiver, creating a new otherpkg.List.
|
||||
func (in *Struct_ObjectAndList) DeepCopyList() otherpkg.List {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new otherpkg.Object.
|
||||
func (in *Struct_ObjectAndList) DeepCopyObject() otherpkg.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_ObjectAndObject) DeepCopyInto(out *Struct_ObjectAndObject) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_ObjectAndObject.
|
||||
func (in *Struct_ObjectAndObject) DeepCopy() *Struct_ObjectAndObject {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_ObjectAndObject)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new otherpkg.Object.
|
||||
func (in *Struct_ObjectAndObject) DeepCopyObject() otherpkg.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_PrimitivePointers) DeepCopyInto(out *Struct_PrimitivePointers) {
|
||||
*out = *in
|
||||
if in.BoolPtrField != nil {
|
||||
in, out := &in.BoolPtrField, &out.BoolPtrField
|
||||
*out = new(bool)
|
||||
**out = **in
|
||||
}
|
||||
if in.IntPtrField != nil {
|
||||
in, out := &in.IntPtrField, &out.IntPtrField
|
||||
*out = new(int)
|
||||
**out = **in
|
||||
}
|
||||
if in.StringPtrField != nil {
|
||||
in, out := &in.StringPtrField, &out.StringPtrField
|
||||
*out = new(string)
|
||||
**out = **in
|
||||
}
|
||||
if in.FloatPtrField != nil {
|
||||
in, out := &in.FloatPtrField, &out.FloatPtrField
|
||||
*out = new(float64)
|
||||
**out = **in
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_PrimitivePointers.
|
||||
func (in *Struct_PrimitivePointers) DeepCopy() *Struct_PrimitivePointers {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_PrimitivePointers)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_PrimitivePointers_Alias) DeepCopyInto(out *Struct_PrimitivePointers_Alias) {
|
||||
*out = *in
|
||||
if in.BoolPtrField != nil {
|
||||
in, out := &in.BoolPtrField, &out.BoolPtrField
|
||||
*out = new(bool)
|
||||
**out = **in
|
||||
}
|
||||
if in.IntPtrField != nil {
|
||||
in, out := &in.IntPtrField, &out.IntPtrField
|
||||
*out = new(int)
|
||||
**out = **in
|
||||
}
|
||||
if in.StringPtrField != nil {
|
||||
in, out := &in.StringPtrField, &out.StringPtrField
|
||||
*out = new(string)
|
||||
**out = **in
|
||||
}
|
||||
if in.FloatPtrField != nil {
|
||||
in, out := &in.FloatPtrField, &out.FloatPtrField
|
||||
*out = new(float64)
|
||||
**out = **in
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_PrimitivePointers_Alias.
|
||||
func (in *Struct_PrimitivePointers_Alias) DeepCopy() *Struct_PrimitivePointers_Alias {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_PrimitivePointers_Alias)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_Primitives) DeepCopyInto(out *Struct_Primitives) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_Primitives.
|
||||
func (in *Struct_Primitives) DeepCopy() *Struct_Primitives {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_Primitives)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_Primitives_Alias) DeepCopyInto(out *Struct_Primitives_Alias) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_Primitives_Alias.
|
||||
func (in *Struct_Primitives_Alias) DeepCopy() *Struct_Primitives_Alias {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_Primitives_Alias)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_Slices) DeepCopyInto(out *Struct_Slices) {
|
||||
*out = *in
|
||||
if in.SliceBoolField != nil {
|
||||
in, out := &in.SliceBoolField, &out.SliceBoolField
|
||||
*out = make([]bool, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.SliceByteField != nil {
|
||||
in, out := &in.SliceByteField, &out.SliceByteField
|
||||
*out = make([]byte, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.SliceIntField != nil {
|
||||
in, out := &in.SliceIntField, &out.SliceIntField
|
||||
*out = make([]int, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.SliceStringField != nil {
|
||||
in, out := &in.SliceStringField, &out.SliceStringField
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.SliceFloatField != nil {
|
||||
in, out := &in.SliceFloatField, &out.SliceFloatField
|
||||
*out = make([]float64, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.SliceStructPrimitivesField != nil {
|
||||
in, out := &in.SliceStructPrimitivesField, &out.SliceStructPrimitivesField
|
||||
*out = make([]Struct_Primitives, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.SliceStructPrimitivesAliasField != nil {
|
||||
in, out := &in.SliceStructPrimitivesAliasField, &out.SliceStructPrimitivesAliasField
|
||||
*out = make([]Struct_Primitives_Alias, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.SliceStructPrimitivePointersField != nil {
|
||||
in, out := &in.SliceStructPrimitivePointersField, &out.SliceStructPrimitivePointersField
|
||||
*out = make([]Struct_PrimitivePointers, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
if in.SliceStructPrimitivePointersAliasField != nil {
|
||||
in, out := &in.SliceStructPrimitivePointersAliasField, &out.SliceStructPrimitivePointersAliasField
|
||||
*out = make([]Struct_PrimitivePointers_Alias, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
if in.SliceSliceIntField != nil {
|
||||
in, out := &in.SliceSliceIntField, &out.SliceSliceIntField
|
||||
*out = make([][]int, len(*in))
|
||||
for i := range *in {
|
||||
if (*in)[i] != nil {
|
||||
in, out := &(*in)[i], &(*out)[i]
|
||||
*out = make([]int, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
}
|
||||
}
|
||||
if in.SliceManualStructField != nil {
|
||||
in, out := &in.SliceManualStructField, &out.SliceManualStructField
|
||||
*out = make([]ManualStruct, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
out.ManualSliceField = in.ManualSliceField.DeepCopy()
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_Slices.
|
||||
func (in *Struct_Slices) DeepCopy() *Struct_Slices {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_Slices)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_Slices_Alias) DeepCopyInto(out *Struct_Slices_Alias) {
|
||||
*out = *in
|
||||
if in.SliceBoolField != nil {
|
||||
in, out := &in.SliceBoolField, &out.SliceBoolField
|
||||
*out = make([]bool, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.SliceByteField != nil {
|
||||
in, out := &in.SliceByteField, &out.SliceByteField
|
||||
*out = make([]byte, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.SliceIntField != nil {
|
||||
in, out := &in.SliceIntField, &out.SliceIntField
|
||||
*out = make([]int, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.SliceStringField != nil {
|
||||
in, out := &in.SliceStringField, &out.SliceStringField
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.SliceFloatField != nil {
|
||||
in, out := &in.SliceFloatField, &out.SliceFloatField
|
||||
*out = make([]float64, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.SliceStructPrimitivesField != nil {
|
||||
in, out := &in.SliceStructPrimitivesField, &out.SliceStructPrimitivesField
|
||||
*out = make([]Struct_Primitives, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.SliceStructPrimitivesAliasField != nil {
|
||||
in, out := &in.SliceStructPrimitivesAliasField, &out.SliceStructPrimitivesAliasField
|
||||
*out = make([]Struct_Primitives_Alias, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.SliceStructPrimitivePointersField != nil {
|
||||
in, out := &in.SliceStructPrimitivePointersField, &out.SliceStructPrimitivePointersField
|
||||
*out = make([]Struct_PrimitivePointers, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
if in.SliceStructPrimitivePointersAliasField != nil {
|
||||
in, out := &in.SliceStructPrimitivePointersAliasField, &out.SliceStructPrimitivePointersAliasField
|
||||
*out = make([]Struct_PrimitivePointers_Alias, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
if in.SliceSliceIntField != nil {
|
||||
in, out := &in.SliceSliceIntField, &out.SliceSliceIntField
|
||||
*out = make([][]int, len(*in))
|
||||
for i := range *in {
|
||||
if (*in)[i] != nil {
|
||||
in, out := &(*in)[i], &(*out)[i]
|
||||
*out = make([]int, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
}
|
||||
}
|
||||
if in.SliceManualStructField != nil {
|
||||
in, out := &in.SliceManualStructField, &out.SliceManualStructField
|
||||
*out = make([]ManualStruct, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
out.ManualSliceField = in.ManualSliceField.DeepCopy()
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_Slices_Alias.
|
||||
func (in *Struct_Slices_Alias) DeepCopy() *Struct_Slices_Alias {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_Slices_Alias)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_Struct_PrimitivePointers) DeepCopyInto(out *Struct_Struct_PrimitivePointers) {
|
||||
*out = *in
|
||||
in.StructField.DeepCopyInto(&out.StructField)
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_Struct_PrimitivePointers.
|
||||
func (in *Struct_Struct_PrimitivePointers) DeepCopy() *Struct_Struct_PrimitivePointers {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_Struct_PrimitivePointers)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_Struct_Primitives) DeepCopyInto(out *Struct_Struct_Primitives) {
|
||||
*out = *in
|
||||
out.StructField = in.StructField
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_Struct_Primitives.
|
||||
func (in *Struct_Struct_Primitives) DeepCopy() *Struct_Struct_Primitives {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_Struct_Primitives)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *Struct_Struct_Slices) DeepCopyInto(out *Struct_Struct_Slices) {
|
||||
*out = *in
|
||||
in.StructField.DeepCopyInto(&out.StructField)
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Struct_Struct_Slices.
|
||||
func (in *Struct_Struct_Slices) DeepCopy() *Struct_Struct_Slices {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Struct_Struct_Slices)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
Reference in New Issue
Block a user