diff options
author | Matthew Heon <matthew.heon@gmail.com> | 2018-08-22 09:12:40 -0400 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2018-08-24 19:19:43 +0000 |
commit | 714dbbda9e1f3ec98d75a07ed4c5442ea6540680 (patch) | |
tree | 286da76261791b375441a6d3999f1348c7d1e66e | |
parent | bd080b45305a311542527443e9108c1cfdff3c93 (diff) | |
download | podman-714dbbda9e1f3ec98d75a07ed4c5442ea6540680.tar.gz podman-714dbbda9e1f3ec98d75a07ed4c5442ea6540680.tar.bz2 podman-714dbbda9e1f3ec98d75a07ed4c5442ea6540680.zip |
Swap from FFJSON to easyjson
FFJSON has serialization differences versus stock Go - namely, it
does not respect the MarshalText() and UnmarshalText() methods,
particularly on []byte, which causes incompatability with
pre-FFJSON containers which contained DNS servers.
EasyJSON does not have these issues, and might even be slightly
faster.
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
Closes: #1322
Approved by: mheon
-rw-r--r-- | Dockerfile | 6 | ||||
-rw-r--r-- | Dockerfile.CentOS | 6 | ||||
-rw-r--r-- | Dockerfile.Fedora | 6 | ||||
-rw-r--r-- | Makefile | 24 | ||||
-rw-r--r-- | libpod/container.go | 3 | ||||
-rw-r--r-- | libpod/container_easyjson.go | 7594 | ||||
-rw-r--r-- | libpod/container_ffjson.go | 5454 | ||||
-rw-r--r-- | libpod/pod.go | 5 | ||||
-rw-r--r-- | libpod/pod_easyjson.go | 574 | ||||
-rw-r--r-- | libpod/pod_ffjson.go | 2681 |
10 files changed, 8198 insertions, 8155 deletions
diff --git a/Dockerfile b/Dockerfile index 48988def4..878d2c0b9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -104,11 +104,11 @@ RUN set -x \ && export GOPATH=/go \ && go get github.com/onsi/gomega/... -# Install ffjson +# Install easyjson RUN set -x \ && export GOPATH=/go \ - && go get github.com/pquerna/ffjson \ - && install -D -m 755 "$GOPATH"/bin/ffjson /usr/bin/ + && go get -u github.com/mailru/easyjson/... \ + && install -D -m 755 "$GOPATH"/bin/easyjson /usr/bin/ # Install cni config #RUN make install.cni diff --git a/Dockerfile.CentOS b/Dockerfile.CentOS index 368f9255c..80ade88bb 100644 --- a/Dockerfile.CentOS +++ b/Dockerfile.CentOS @@ -61,11 +61,11 @@ RUN set -x \ && export GOPATH=/go \ && go get github.com/onsi/gomega/... -# Install ffjson +# Install easyjson RUN set -x \ && export GOPATH=/go \ - && go get github.com/pquerna/ffjson \ - && install -D -m 755 "$GOPATH"/bin/ffjson /usr/bin/ + && go get -u github.com/mailru/easyjson/... \ + && install -D -m 755 "$GOPATH"/bin/easyjson /usr/bin/ # Install conmon ENV CRIO_COMMIT 662dbb31b5d4f5ed54511a47cde7190c61c28677 diff --git a/Dockerfile.Fedora b/Dockerfile.Fedora index 74bae9eb0..f544fc532 100644 --- a/Dockerfile.Fedora +++ b/Dockerfile.Fedora @@ -63,11 +63,11 @@ RUN set -x \ && export GOPATH=/go \ && go get github.com/onsi/gomega/... -# Install ffjson +# Install easyjson RUN set -x \ && export GOPATH=/go \ - && go get github.com/pquerna/ffjson \ - && install -D -m 755 "$GOPATH"/bin/ffjson /usr/bin/ + && go get -u github.com/mailru/easyjson/... \ + && install -D -m 755 "$GOPATH"/bin/easyjson /usr/bin/ # Install conmon ENV CRIO_COMMIT 662dbb31b5d4f5ed54511a47cde7190c61c28677 @@ -135,6 +135,8 @@ clean: cmd/podman/varlink/iopodman.go \ libpod/container_ffjson.go \ libpod/pod_ffjson.go \ + libpod/container_easyjson.go \ + libpod/pod_easyjson.go \ $(MANPAGES) ||: ifdef HAS_PYTHON3 $(MAKE) -C contrib/python/podman clean @@ -183,7 +185,7 @@ clientintegration: vagrant-check: BOX=$(BOX) sh ./vagrant.sh -binaries: varlink_generate ffjson_generate podman python +binaries: varlink_generate easyjson_generate podman python test-binaries: test/bin2img/bin2img test/copyimg/copyimg test/checkseccomp/checkseccomp @@ -262,7 +264,7 @@ uninstall: .PHONY: install.tools -install.tools: .install.gitvalidation .install.gometalinter .install.md2man .install.ffjson +install.tools: .install.gitvalidation .install.gometalinter .install.md2man .install.easyjson .install.gitvalidation: .gopathok if [ ! -x "$(GOBIN)/git-validation" ]; then \ @@ -283,9 +285,9 @@ install.tools: .install.gitvalidation .install.gometalinter .install.md2man .ins $(GO) get -u github.com/cpuguy83/go-md2man; \ fi -.install.ffjson: .gopathok +.install.easyjson: .gopathok if [ ! -x "$(GOBIN)/ffjson" ]; then\ - $(GO) get -u github.com/pquerna/ffjson; \ + $(GO) get -u github.com/mailru/easyjson/...; \ fi .install.ostree: .gopathok @@ -299,15 +301,15 @@ install.tools: .install.gitvalidation .install.gometalinter .install.md2man .ins varlink_generate: .gopathok cmd/podman/varlink/iopodman.go varlink_api_generate: .gopathok API.md -ffjson_generate: .gopathok libpod/container_ffjson.go libpod/pod_ffjson.go +easyjson_generate: .gopathok libpod/container_easyjson.go libpod/pod_easyjson.go -libpod/container_ffjson.go: libpod/container.go - rm -f libpod/container_ffjson.go - ffjson $(GOPKGDIR)/libpod/container.go +libpod/container_easyjson.go: libpod/container.go + rm -f libpod/container_easyjson.go + cd "$(GOPKGDIR)" && easyjson ./libpod/container.go -libpod/pod_ffjson.go: libpod/pod.go - rm -f libpod/pod_ffjson.go - ffjson $(GOPKGDIR)/libpod/pod.go +libpod/pod_easyjson.go: libpod/pod.go + rm -f libpod/pod_easyjson.go + cd "$(GOPKGDIR)" && easyjson ./libpod/pod.go .PHONY: install.libseccomp.sudo install.libseccomp.sudo: diff --git a/libpod/container.go b/libpod/container.go index ea6cd2ac4..e748cb84d 100644 --- a/libpod/container.go +++ b/libpod/container.go @@ -123,6 +123,7 @@ type Container struct { // containerState contains the current state of the container // It is stored on disk in a tmpfs and recreated on reboot +// easyjson:json type containerState struct { // The current state of the running container State ContainerStatus `json:"state"` @@ -183,6 +184,7 @@ type containerState struct { } // ExecSession contains information on an active exec session +// easyjson:json type ExecSession struct { ID string `json:"id"` Command []string `json:"command"` @@ -192,6 +194,7 @@ type ExecSession struct { // ContainerConfig contains all information that was used to create the // container. It may not be changed once created. // It is stored, read-only, on disk +// easyjson:json type ContainerConfig struct { Spec *spec.Spec `json:"spec"` ID string `json:"id"` diff --git a/libpod/container_easyjson.go b/libpod/container_easyjson.go new file mode 100644 index 000000000..d4294e9b5 --- /dev/null +++ b/libpod/container_easyjson.go @@ -0,0 +1,7594 @@ +// Code generated by easyjson for marshaling/unmarshaling. DO NOT EDIT. + +package libpod + +import ( + json "encoding/json" + types "github.com/containernetworking/cni/pkg/types" + current "github.com/containernetworking/cni/pkg/types/current" + storage "github.com/containers/storage" + idtools "github.com/containers/storage/pkg/idtools" + ocicni "github.com/cri-o/ocicni/pkg/ocicni" + easyjson "github.com/mailru/easyjson" + jlexer "github.com/mailru/easyjson/jlexer" + jwriter "github.com/mailru/easyjson/jwriter" + specs_go "github.com/opencontainers/runtime-spec/specs-go" + net "net" + os "os" +) + +// suppress unused package warning +var ( + _ *json.RawMessage + _ *jlexer.Lexer + _ *jwriter.Writer + _ easyjson.Marshaler +) + +func easyjson1dbef17bDecodeGithubComContainersLibpodLibpod(in *jlexer.Lexer, out *containerState) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "state": + out.State = ContainerStatus(in.Int()) + case "configPath": + out.ConfigPath = string(in.String()) + case "runDir": + out.RunDir = string(in.String()) + case "destinationRunDir": + out.DestinationRunDir = string(in.String()) + case "mounted": + out.Mounted = bool(in.Bool()) + case "mountPoint": + out.Mountpoint = string(in.String()) + case "realMountPoint": + out.RealMountpoint = string(in.String()) + case "startedTime": + if data := in.Raw(); in.Ok() { + in.AddError((out.StartedTime).UnmarshalJSON(data)) + } + case "finishedTime": + if data := in.Raw(); in.Ok() { + in.AddError((out.FinishedTime).UnmarshalJSON(data)) + } + case "exitCode": + out.ExitCode = int32(in.Int32()) + case "exited": + out.Exited = bool(in.Bool()) + case "oomKilled": + out.OOMKilled = bool(in.Bool()) + case "pid": + out.PID = int(in.Int()) + case "execSessions": + if in.IsNull() { + in.Skip() + } else { + in.Delim('{') + if !in.IsDelim('}') { + out.ExecSessions = make(map[string]*ExecSession) + } else { + out.ExecSessions = nil + } + for !in.IsDelim('}') { + key := string(in.String()) + in.WantColon() + var v1 *ExecSession + if in.IsNull() { + in.Skip() + v1 = nil + } else { + if v1 == nil { + v1 = new(ExecSession) + } + (*v1).UnmarshalEasyJSON(in) + } + (out.ExecSessions)[key] = v1 + in.WantComma() + } + in.Delim('}') + } + case "networkResults": + if in.IsNull() { + in.Skip() + out.NetworkStatus = nil + } else { + in.Delim('[') + if out.NetworkStatus == nil { + if !in.IsDelim(']') { + out.NetworkStatus = make([]*current.Result, 0, 8) + } else { + out.NetworkStatus = []*current.Result{} + } + } else { + out.NetworkStatus = (out.NetworkStatus)[:0] + } + for !in.IsDelim(']') { + var v2 *current.Result + if in.IsNull() { + in.Skip() + v2 = nil + } else { + if v2 == nil { + v2 = new(current.Result) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComContainernetworkingCniPkgTypesCurrent(in, &*v2) + } + out.NetworkStatus = append(out.NetworkStatus, v2) + in.WantComma() + } + in.Delim(']') + } + case "bindMounts": + if in.IsNull() { + in.Skip() + } else { + in.Delim('{') + if !in.IsDelim('}') { + out.BindMounts = make(map[string]string) + } else { + out.BindMounts = nil + } + for !in.IsDelim('}') { + key := string(in.String()) + in.WantColon() + var v3 string + v3 = string(in.String()) + (out.BindMounts)[key] = v3 + in.WantComma() + } + in.Delim('}') + } + case "userNSRoot": + out.UserNSRoot = string(in.String()) + case "extensionStageHooks": + if in.IsNull() { + in.Skip() + } else { + in.Delim('{') + if !in.IsDelim('}') { + out.ExtensionStageHooks = make(map[string][]specs_go.Hook) + } else { + out.ExtensionStageHooks = nil + } + for !in.IsDelim('}') { + key := string(in.String()) + in.WantColon() + var v4 []specs_go.Hook + if in.IsNull() { + in.Skip() + v4 = nil + } else { + in.Delim('[') + if v4 == nil { + if !in.IsDelim(']') { + v4 = make([]specs_go.Hook, 0, 1) + } else { + v4 = []specs_go.Hook{} + } + } else { + v4 = (v4)[:0] + } + for !in.IsDelim(']') { + var v5 specs_go.Hook + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo(in, &v5) + v4 = append(v4, v5) + in.WantComma() + } + in.Delim(']') + } + (out.ExtensionStageHooks)[key] = v4 + in.WantComma() + } + in.Delim('}') + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodLibpod(out *jwriter.Writer, in containerState) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"state\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int(int(in.State)) + } + if in.ConfigPath != "" { + const prefix string = ",\"configPath\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.ConfigPath)) + } + if in.RunDir != "" { + const prefix string = ",\"runDir\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.RunDir)) + } + if in.DestinationRunDir != "" { + const prefix string = ",\"destinationRunDir\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.DestinationRunDir)) + } + if in.Mounted { + const prefix string = ",\"mounted\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Bool(bool(in.Mounted)) + } + if in.Mountpoint != "" { + const prefix string = ",\"mountPoint\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Mountpoint)) + } + if in.RealMountpoint != "" { + const prefix string = ",\"realMountPoint\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.RealMountpoint)) + } + if true { + const prefix string = ",\"startedTime\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Raw((in.StartedTime).MarshalJSON()) + } + if true { + const prefix string = ",\"finishedTime\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Raw((in.FinishedTime).MarshalJSON()) + } + if in.ExitCode != 0 { + const prefix string = ",\"exitCode\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int32(int32(in.ExitCode)) + } + if in.Exited { + const prefix string = ",\"exited\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Bool(bool(in.Exited)) + } + if in.OOMKilled { + const prefix string = ",\"oomKilled\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Bool(bool(in.OOMKilled)) + } + if in.PID != 0 { + const prefix string = ",\"pid\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int(int(in.PID)) + } + if len(in.ExecSessions) != 0 { + const prefix string = ",\"execSessions\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('{') + v6First := true + for v6Name, v6Value := range in.ExecSessions { + if v6First { + v6First = false + } else { + out.RawByte(',') + } + out.String(string(v6Name)) + out.RawByte(':') + if v6Value == nil { + out.RawString("null") + } else { + (*v6Value).MarshalEasyJSON(out) + } + } + out.RawByte('}') + } + } + if len(in.NetworkStatus) != 0 { + const prefix string = ",\"networkResults\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v7, v8 := range in.NetworkStatus { + if v7 > 0 { + out.RawByte(',') + } + if v8 == nil { + out.RawString("null") + } else { + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComContainernetworkingCniPkgTypesCurrent(out, *v8) + } + } + out.RawByte(']') + } + } + if len(in.BindMounts) != 0 { + const prefix string = ",\"bindMounts\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('{') + v9First := true + for v9Name, v9Value := range in.BindMounts { + if v9First { + v9First = false + } else { + out.RawByte(',') + } + out.String(string(v9Name)) + out.RawByte(':') + out.String(string(v9Value)) + } + out.RawByte('}') + } + } + if in.UserNSRoot != "" { + const prefix string = ",\"userNSRoot\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.UserNSRoot)) + } + if len(in.ExtensionStageHooks) != 0 { + const prefix string = ",\"extensionStageHooks\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('{') + v10First := true + for v10Name, v10Value := range in.ExtensionStageHooks { + if v10First { + v10First = false + } else { + out.RawByte(',') + } + out.String(string(v10Name)) + out.RawByte(':') + if v10Value == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 { + out.RawString("null") + } else { + out.RawByte('[') + for v11, v12 := range v10Value { + if v11 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo(out, v12) + } + out.RawByte(']') + } + } + out.RawByte('}') + } + } + out.RawByte('}') +} + +// MarshalJSON supports json.Marshaler interface +func (v containerState) MarshalJSON() ([]byte, error) { + w := jwriter.Writer{} + easyjson1dbef17bEncodeGithubComContainersLibpodLibpod(&w, v) + return w.Buffer.BuildBytes(), w.Error +} + +// MarshalEasyJSON supports easyjson.Marshaler interface +func (v containerState) MarshalEasyJSON(w *jwriter.Writer) { + easyjson1dbef17bEncodeGithubComContainersLibpodLibpod(w, v) +} + +// UnmarshalJSON supports json.Unmarshaler interface +func (v *containerState) UnmarshalJSON(data []byte) error { + r := jlexer.Lexer{Data: data} + easyjson1dbef17bDecodeGithubComContainersLibpodLibpod(&r, v) + return r.Error() +} + +// UnmarshalEasyJSON supports easyjson.Unmarshaler interface +func (v *containerState) UnmarshalEasyJSON(l *jlexer.Lexer) { + easyjson1dbef17bDecodeGithubComContainersLibpodLibpod(l, v) +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo(in *jlexer.Lexer, out *specs_go.Hook) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "path": + out.Path = string(in.String()) + case "args": + if in.IsNull() { + in.Skip() + out.Args = nil + } else { + in.Delim('[') + if out.Args == nil { + if !in.IsDelim(']') { + out.Args = make([]string, 0, 4) + } else { + out.Args = []string{} + } + } else { + out.Args = (out.Args)[:0] + } + for !in.IsDelim(']') { + var v13 string + v13 = string(in.String()) + out.Args = append(out.Args, v13) + in.WantComma() + } + in.Delim(']') + } + case "env": + if in.IsNull() { + in.Skip() + out.Env = nil + } else { + in.Delim('[') + if out.Env == nil { + if !in.IsDelim(']') { + out.Env = make([]string, 0, 4) + } else { + out.Env = []string{} + } + } else { + out.Env = (out.Env)[:0] + } + for !in.IsDelim(']') { + var v14 string + v14 = string(in.String()) + out.Env = append(out.Env, v14) + in.WantComma() + } + in.Delim(']') + } + case "timeout": + if in.IsNull() { + in.Skip() + out.Timeout = nil + } else { + if out.Timeout == nil { + out.Timeout = new(int) + } + *out.Timeout = int(in.Int()) + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo(out *jwriter.Writer, in specs_go.Hook) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"path\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Path)) + } + if len(in.Args) != 0 { + const prefix string = ",\"args\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v15, v16 := range in.Args { + if v15 > 0 { + out.RawByte(',') + } + out.String(string(v16)) + } + out.RawByte(']') + } + } + if len(in.Env) != 0 { + const prefix string = ",\"env\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v17, v18 := range in.Env { + if v17 > 0 { + out.RawByte(',') + } + out.String(string(v18)) + } + out.RawByte(']') + } + } + if in.Timeout != nil { + const prefix string = ",\"timeout\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int(int(*in.Timeout)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComContainernetworkingCniPkgTypesCurrent(in *jlexer.Lexer, out *current.Result) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "cniVersion": + out.CNIVersion = string(in.String()) + case "interfaces": + if in.IsNull() { + in.Skip() + out.Interfaces = nil + } else { + in.Delim('[') + if out.Interfaces == nil { + if !in.IsDelim(']') { + out.Interfaces = make([]*current.Interface, 0, 8) + } else { + out.Interfaces = []*current.Interface{} + } + } else { + out.Interfaces = (out.Interfaces)[:0] + } + for !in.IsDelim(']') { + var v19 *current.Interface + if in.IsNull() { + in.Skip() + v19 = nil + } else { + if v19 == nil { + v19 = new(current.Interface) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComContainernetworkingCniPkgTypesCurrent1(in, &*v19) + } + out.Interfaces = append(out.Interfaces, v19) + in.WantComma() + } + in.Delim(']') + } + case "ips": + if in.IsNull() { + in.Skip() + out.IPs = nil + } else { + in.Delim('[') + if out.IPs == nil { + if !in.IsDelim(']') { + out.IPs = make([]*current.IPConfig, 0, 8) + } else { + out.IPs = []*current.IPConfig{} + } + } else { + out.IPs = (out.IPs)[:0] + } + for !in.IsDelim(']') { + var v20 *current.IPConfig + if in.IsNull() { + in.Skip() + v20 = nil + } else { + if v20 == nil { + v20 = new(current.IPConfig) + } + if data := in.Raw(); in.Ok() { + in.AddError((*v20).UnmarshalJSON(data)) + } + } + out.IPs = append(out.IPs, v20) + in.WantComma() + } + in.Delim(']') + } + case "routes": + if in.IsNull() { + in.Skip() + out.Routes = nil + } else { + in.Delim('[') + if out.Routes == nil { + if !in.IsDelim(']') { + out.Routes = make([]*types.Route, 0, 8) + } else { + out.Routes = []*types.Route{} + } + } else { + out.Routes = (out.Routes)[:0] + } + for !in.IsDelim(']') { + var v21 *types.Route + if in.IsNull() { + in.Skip() + v21 = nil + } else { + if v21 == nil { + v21 = new(types.Route) + } + if data := in.Raw(); in.Ok() { + in.AddError((*v21).UnmarshalJSON(data)) + } + } + out.Routes = append(out.Routes, v21) + in.WantComma() + } + in.Delim(']') + } + case "dns": + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComContainernetworkingCniPkgTypes(in, &out.DNS) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComContainernetworkingCniPkgTypesCurrent(out *jwriter.Writer, in current.Result) { + out.RawByte('{') + first := true + _ = first + if in.CNIVersion != "" { + const prefix string = ",\"cniVersion\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.CNIVersion)) + } + if len(in.Interfaces) != 0 { + const prefix string = ",\"interfaces\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v22, v23 := range in.Interfaces { + if v22 > 0 { + out.RawByte(',') + } + if v23 == nil { + out.RawString("null") + } else { + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComContainernetworkingCniPkgTypesCurrent1(out, *v23) + } + } + out.RawByte(']') + } + } + if len(in.IPs) != 0 { + const prefix string = ",\"ips\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v24, v25 := range in.IPs { + if v24 > 0 { + out.RawByte(',') + } + if v25 == nil { + out.RawString("null") + } else { + out.Raw((*v25).MarshalJSON()) + } + } + out.RawByte(']') + } + } + if len(in.Routes) != 0 { + const prefix string = ",\"routes\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v26, v27 := range in.Routes { + if v26 > 0 { + out.RawByte(',') + } + if v27 == nil { + out.RawString("null") + } else { + out.Raw((*v27).MarshalJSON()) + } + } + out.RawByte(']') + } + } + if true { + const prefix string = ",\"dns\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComContainernetworkingCniPkgTypes(out, in.DNS) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComContainernetworkingCniPkgTypes(in *jlexer.Lexer, out *types.DNS) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "nameservers": + if in.IsNull() { + in.Skip() + out.Nameservers = nil + } else { + in.Delim('[') + if out.Nameservers == nil { + if !in.IsDelim(']') { + out.Nameservers = make([]string, 0, 4) + } else { + out.Nameservers = []string{} + } + } else { + out.Nameservers = (out.Nameservers)[:0] + } + for !in.IsDelim(']') { + var v28 string + v28 = string(in.String()) + out.Nameservers = append(out.Nameservers, v28) + in.WantComma() + } + in.Delim(']') + } + case "domain": + out.Domain = string(in.String()) + case "search": + if in.IsNull() { + in.Skip() + out.Search = nil + } else { + in.Delim('[') + if out.Search == nil { + if !in.IsDelim(']') { + out.Search = make([]string, 0, 4) + } else { + out.Search = []string{} + } + } else { + out.Search = (out.Search)[:0] + } + for !in.IsDelim(']') { + var v29 string + v29 = string(in.String()) + out.Search = append(out.Search, v29) + in.WantComma() + } + in.Delim(']') + } + case "options": + if in.IsNull() { + in.Skip() + out.Options = nil + } else { + in.Delim('[') + if out.Options == nil { + if !in.IsDelim(']') { + out.Options = make([]string, 0, 4) + } else { + out.Options = []string{} + } + } else { + out.Options = (out.Options)[:0] + } + for !in.IsDelim(']') { + var v30 string + v30 = string(in.String()) + out.Options = append(out.Options, v30) + in.WantComma() + } + in.Delim(']') + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComContainernetworkingCniPkgTypes(out *jwriter.Writer, in types.DNS) { + out.RawByte('{') + first := true + _ = first + if len(in.Nameservers) != 0 { + const prefix string = ",\"nameservers\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v31, v32 := range in.Nameservers { + if v31 > 0 { + out.RawByte(',') + } + out.String(string(v32)) + } + out.RawByte(']') + } + } + if in.Domain != "" { + const prefix string = ",\"domain\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Domain)) + } + if len(in.Search) != 0 { + const prefix string = ",\"search\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v33, v34 := range in.Search { + if v33 > 0 { + out.RawByte(',') + } + out.String(string(v34)) + } + out.RawByte(']') + } + } + if len(in.Options) != 0 { + const prefix string = ",\"options\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v35, v36 := range in.Options { + if v35 > 0 { + out.RawByte(',') + } + out.String(string(v36)) + } + out.RawByte(']') + } + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComContainernetworkingCniPkgTypesCurrent1(in *jlexer.Lexer, out *current.Interface) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "name": + out.Name = string(in.String()) + case "mac": + out.Mac = string(in.String()) + case "sandbox": + out.Sandbox = string(in.String()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComContainernetworkingCniPkgTypesCurrent1(out *jwriter.Writer, in current.Interface) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"name\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Name)) + } + if in.Mac != "" { + const prefix string = ",\"mac\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Mac)) + } + if in.Sandbox != "" { + const prefix string = ",\"sandbox\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Sandbox)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodLibpod1(in *jlexer.Lexer, out *ExecSession) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "id": + out.ID = string(in.String()) + case "command": + if in.IsNull() { + in.Skip() + out.Command = nil + } else { + in.Delim('[') + if out.Command == nil { + if !in.IsDelim(']') { + out.Command = make([]string, 0, 4) + } else { + out.Command = []string{} + } + } else { + out.Command = (out.Command)[:0] + } + for !in.IsDelim(']') { + var v37 string + v37 = string(in.String()) + out.Command = append(out.Command, v37) + in.WantComma() + } + in.Delim(']') + } + case "pid": + out.PID = int(in.Int()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodLibpod1(out *jwriter.Writer, in ExecSession) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"id\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.ID)) + } + { + const prefix string = ",\"command\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + if in.Command == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 { + out.RawString("null") + } else { + out.RawByte('[') + for v38, v39 := range in.Command { + if v38 > 0 { + out.RawByte(',') + } + out.String(string(v39)) + } + out.RawByte(']') + } + } + { + const prefix string = ",\"pid\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int(int(in.PID)) + } + out.RawByte('}') +} + +// MarshalJSON supports json.Marshaler interface +func (v ExecSession) MarshalJSON() ([]byte, error) { + w := jwriter.Writer{} + easyjson1dbef17bEncodeGithubComContainersLibpodLibpod1(&w, v) + return w.Buffer.BuildBytes(), w.Error +} + +// MarshalEasyJSON supports easyjson.Marshaler interface +func (v ExecSession) MarshalEasyJSON(w *jwriter.Writer) { + easyjson1dbef17bEncodeGithubComContainersLibpodLibpod1(w, v) +} + +// UnmarshalJSON supports json.Unmarshaler interface +func (v *ExecSession) UnmarshalJSON(data []byte) error { + r := jlexer.Lexer{Data: data} + easyjson1dbef17bDecodeGithubComContainersLibpodLibpod1(&r, v) + return r.Error() +} + +// UnmarshalEasyJSON supports easyjson.Unmarshaler interface +func (v *ExecSession) UnmarshalEasyJSON(l *jlexer.Lexer) { + easyjson1dbef17bDecodeGithubComContainersLibpodLibpod1(l, v) +} +func easyjson1dbef17bDecodeGithubComContainersLibpodLibpod2(in *jlexer.Lexer, out *ContainerConfig) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "spec": + if in.IsNull() { + in.Skip() + out.Spec = nil + } else { + if out.Spec == nil { + out.Spec = new(specs_go.Spec) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo1(in, &*out.Spec) + } + case "id": + out.ID = string(in.String()) + case "name": + out.Name = string(in.String()) + case "pod": + out.Pod = string(in.String()) + case "namespace": + out.Namespace = string(in.String()) + case "idMappingsOptions": + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComContainersStorage(in, &out.IDMappings) + case "rootfsImageID": + out.RootfsImageID = string(in.String()) + case "rootfsImageName": + out.RootfsImageName = string(in.String()) + case "rootfs": + out.Rootfs = string(in.String()) + case "imageVolumes": + out.ImageVolumes = bool(in.Bool()) + case "ShmDir": + out.ShmDir = string(in.String()) + case "shmSize": + out.ShmSize = int64(in.Int64()) + case "staticDir": + out.StaticDir = string(in.String()) + case "mounts": + if in.IsNull() { + in.Skip() + out.Mounts = nil + } else { + in.Delim('[') + if out.Mounts == nil { + if !in.IsDelim(']') { + out.Mounts = make([]string, 0, 4) + } else { + out.Mounts = []string{} + } + } else { + out.Mounts = (out.Mounts)[:0] + } + for !in.IsDelim(']') { + var v40 string + v40 = string(in.String()) + out.Mounts = append(out.Mounts, v40) + in.WantComma() + } + in.Delim(']') + } + case "privileged": + out.Privileged = bool(in.Bool()) + case "ProcessLabel": + out.ProcessLabel = string(in.String()) + case "MountLabel": + out.MountLabel = string(in.String()) + case "user": + out.User = string(in.String()) + case "groups": + if in.IsNull() { + in.Skip() + out.Groups = nil + } else { + in.Delim('[') + if out.Groups == nil { + if !in.IsDelim(']') { + out.Groups = make([]string, 0, 4) + } else { + out.Groups = []string{} + } + } else { + out.Groups = (out.Groups)[:0] + } + for !in.IsDelim(']') { + var v41 string + v41 = string(in.String()) + out.Groups = append(out.Groups, v41) + in.WantComma() + } + in.Delim(']') + } + case "ipcNsCtr": + out.IPCNsCtr = string(in.String()) + case "mountNsCtr": + out.MountNsCtr = string(in.String()) + case "netNsCtr": + out.NetNsCtr = string(in.String()) + case "pidNsCtr": + out.PIDNsCtr = string(in.String()) + case "userNsCtr": + out.UserNsCtr = string(in.String()) + case "utsNsCtr": + out.UTSNsCtr = string(in.String()) + case "cgroupNsCtr": + out.CgroupNsCtr = string(in.String()) + case "Dependencies": + if in.IsNull() { + in.Skip() + out.Dependencies = nil + } else { + in.Delim('[') + if out.Dependencies == nil { + if !in.IsDelim(']') { + out.Dependencies = make([]string, 0, 4) + } else { + out.Dependencies = []string{} + } + } else { + out.Dependencies = (out.Dependencies)[:0] + } + for !in.IsDelim(']') { + var v42 string + v42 = string(in.String()) + out.Dependencies = append(out.Dependencies, v42) + in.WantComma() + } + in.Delim(']') + } + case "createNetNS": + out.CreateNetNS = bool(in.Bool()) + case "portMappings": + if in.IsNull() { + in.Skip() + out.PortMappings = nil + } else { + in.Delim('[') + if out.PortMappings == nil { + if !in.IsDelim(']') { + out.PortMappings = make([]ocicni.PortMapping, 0, 1) + } else { + out.PortMappings = []ocicni.PortMapping{} + } + } else { + out.PortMappings = (out.PortMappings)[:0] + } + for !in.IsDelim(']') { + var v43 ocicni.PortMapping + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComCriOOcicniPkgOcicni(in, &v43) + out.PortMappings = append(out.PortMappings, v43) + in.WantComma() + } + in.Delim(']') + } + case "dnsServer": + if in.IsNull() { + in.Skip() + out.DNSServer = nil + } else { + in.Delim('[') + if out.DNSServer == nil { + if !in.IsDelim(']') { + out.DNSServer = make([]net.IP, 0, 2) + } else { + out.DNSServer = []net.IP{} + } + } else { + out.DNSServer = (out.DNSServer)[:0] + } + for !in.IsDelim(']') { + var v44 net.IP + if data := in.UnsafeBytes(); in.Ok() { + in.AddError((v44).UnmarshalText(data)) + } + out.DNSServer = append(out.DNSServer, v44) + in.WantComma() + } + in.Delim(']') + } + case "dnsSearch": + if in.IsNull() { + in.Skip() + out.DNSSearch = nil + } else { + in.Delim('[') + if out.DNSSearch == nil { + if !in.IsDelim(']') { + out.DNSSearch = make([]string, 0, 4) + } else { + out.DNSSearch = []string{} + } + } else { + out.DNSSearch = (out.DNSSearch)[:0] + } + for !in.IsDelim(']') { + var v45 string + v45 = string(in.String()) + out.DNSSearch = append(out.DNSSearch, v45) + in.WantComma() + } + in.Delim(']') + } + case "dnsOption": + if in.IsNull() { + in.Skip() + out.DNSOption = nil + } else { + in.Delim('[') + if out.DNSOption == nil { + if !in.IsDelim(']') { + out.DNSOption = make([]string, 0, 4) + } else { + out.DNSOption = []string{} + } + } else { + out.DNSOption = (out.DNSOption)[:0] + } + for !in.IsDelim(']') { + var v46 string + v46 = string(in.String()) + out.DNSOption = append(out.DNSOption, v46) + in.WantComma() + } + in.Delim(']') + } + case "hostsAdd": + if in.IsNull() { + in.Skip() + out.HostAdd = nil + } else { + in.Delim('[') + if out.HostAdd == nil { + if !in.IsDelim(']') { + out.HostAdd = make([]string, 0, 4) + } else { + out.HostAdd = []string{} + } + } else { + out.HostAdd = (out.HostAdd)[:0] + } + for !in.IsDelim(']') { + var v47 string + v47 = string(in.String()) + out.HostAdd = append(out.HostAdd, v47) + in.WantComma() + } + in.Delim(']') + } + case "networks": + if in.IsNull() { + in.Skip() + out.Networks = nil + } else { + in.Delim('[') + if out.Networks == nil { + if !in.IsDelim(']') { + out.Networks = make([]string, 0, 4) + } else { + out.Networks = []string{} + } + } else { + out.Networks = (out.Networks)[:0] + } + for !in.IsDelim(']') { + var v48 string + v48 = string(in.String()) + out.Networks = append(out.Networks, v48) + in.WantComma() + } + in.Delim(']') + } + case "userVolumes": + if in.IsNull() { + in.Skip() + out.UserVolumes = nil + } else { + in.Delim('[') + if out.UserVolumes == nil { + if !in.IsDelim(']') { + out.UserVolumes = make([]string, 0, 4) + } else { + out.UserVolumes = []string{} + } + } else { + out.UserVolumes = (out.UserVolumes)[:0] + } + for !in.IsDelim(']') { + var v49 string + v49 = string(in.String()) + out.UserVolumes = append(out.UserVolumes, v49) + in.WantComma() + } + in.Delim(']') + } + case "entrypoint": + if in.IsNull() { + in.Skip() + out.Entrypoint = nil + } else { + in.Delim('[') + if out.Entrypoint == nil { + if !in.IsDelim(']') { + out.Entrypoint = make([]string, 0, 4) + } else { + out.Entrypoint = []string{} + } + } else { + out.Entrypoint = (out.Entrypoint)[:0] + } + for !in.IsDelim(']') { + var v50 string + v50 = string(in.String()) + out.Entrypoint = append(out.Entrypoint, v50) + in.WantComma() + } + in.Delim(']') + } + case "command": + if in.IsNull() { + in.Skip() + out.Command = nil + } else { + in.Delim('[') + if out.Command == nil { + if !in.IsDelim(']') { + out.Command = make([]string, 0, 4) + } else { + out.Command = []string{} + } + } else { + out.Command = (out.Command)[:0] + } + for !in.IsDelim(']') { + var v51 string + v51 = string(in.String()) + out.Command = append(out.Command, v51) + in.WantComma() + } + in.Delim(']') + } + case "stdin": + out.Stdin = bool(in.Bool()) + case "labels": + if in.IsNull() { + in.Skip() + } else { + in.Delim('{') + if !in.IsDelim('}') { + out.Labels = make(map[string]string) + } else { + out.Labels = nil + } + for !in.IsDelim('}') { + key := string(in.String()) + in.WantColon() + var v52 string + v52 = string(in.String()) + (out.Labels)[key] = v52 + in.WantComma() + } + in.Delim('}') + } + case "stopSignal": + out.StopSignal = uint(in.Uint()) + case "stopTimeout": + out.StopTimeout = uint(in.Uint()) + case "createdTime": + if data := in.Raw(); in.Ok() { + in.AddError((out.CreatedTime).UnmarshalJSON(data)) + } + case "cgroupParent": + out.CgroupParent = string(in.String()) + case "logPath": + out.LogPath = string(in.String()) + case "conmonPidFile": + out.ConmonPidFile = string(in.String()) + case "postConfigureNetNS": + out.PostConfigureNetNS = bool(in.Bool()) + case "exitCommand": + if in.IsNull() { + in.Skip() + out.ExitCommand = nil + } else { + in.Delim('[') + if out.ExitCommand == nil { + if !in.IsDelim(']') { + out.ExitCommand = make([]string, 0, 4) + } else { + out.ExitCommand = []string{} + } + } else { + out.ExitCommand = (out.ExitCommand)[:0] + } + for !in.IsDelim(']') { + var v53 string + v53 = string(in.String()) + out.ExitCommand = append(out.ExitCommand, v53) + in.WantComma() + } + in.Delim(']') + } + case "LocalVolumes": + if in.IsNull() { + in.Skip() + out.LocalVolumes = nil + } else { + in.Delim('[') + if out.LocalVolumes == nil { + if !in.IsDelim(']') { + out.LocalVolumes = make([]string, 0, 4) + } else { + out.LocalVolumes = []string{} + } + } else { + out.LocalVolumes = (out.LocalVolumes)[:0] + } + for !in.IsDelim(']') { + var v54 string + v54 = string(in.String()) + out.LocalVolumes = append(out.LocalVolumes, v54) + in.WantComma() + } + in.Delim(']') + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodLibpod2(out *jwriter.Writer, in ContainerConfig) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"spec\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + if in.Spec == nil { + out.RawString("null") + } else { + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo1(out, *in.Spec) + } + } + { + const prefix string = ",\"id\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.ID)) + } + { + const prefix string = ",\"name\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Name)) + } + if in.Pod != "" { + const prefix string = ",\"pod\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Pod)) + } + if in.Namespace != "" { + const prefix string = ",\"namespace\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Namespace)) + } + if true { + const prefix string = ",\"idMappingsOptions\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComContainersStorage(out, in.IDMappings) + } + if in.RootfsImageID != "" { + const prefix string = ",\"rootfsImageID\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.RootfsImageID)) + } + if in.RootfsImageName != "" { + const prefix string = ",\"rootfsImageName\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.RootfsImageName)) + } + if in.Rootfs != "" { + const prefix string = ",\"rootfs\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Rootfs)) + } + { + const prefix string = ",\"imageVolumes\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Bool(bool(in.ImageVolumes)) + } + if in.ShmDir != "" { + const prefix string = ",\"ShmDir\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.ShmDir)) + } + { + const prefix string = ",\"shmSize\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int64(int64(in.ShmSize)) + } + { + const prefix string = ",\"staticDir\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.StaticDir)) + } + if len(in.Mounts) != 0 { + const prefix string = ",\"mounts\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v55, v56 := range in.Mounts { + if v55 > 0 { + out.RawByte(',') + } + out.String(string(v56)) + } + out.RawByte(']') + } + } + { + const prefix string = ",\"privileged\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Bool(bool(in.Privileged)) + } + if in.ProcessLabel != "" { + const prefix string = ",\"ProcessLabel\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.ProcessLabel)) + } + if in.MountLabel != "" { + const prefix string = ",\"MountLabel\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.MountLabel)) + } + if in.User != "" { + const prefix string = ",\"user\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.User)) + } + if len(in.Groups) != 0 { + const prefix string = ",\"groups\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v57, v58 := range in.Groups { + if v57 > 0 { + out.RawByte(',') + } + out.String(string(v58)) + } + out.RawByte(']') + } + } + if in.IPCNsCtr != "" { + const prefix string = ",\"ipcNsCtr\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.IPCNsCtr)) + } + if in.MountNsCtr != "" { + const prefix string = ",\"mountNsCtr\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.MountNsCtr)) + } + if in.NetNsCtr != "" { + const prefix string = ",\"netNsCtr\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.NetNsCtr)) + } + if in.PIDNsCtr != "" { + const prefix string = ",\"pidNsCtr\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.PIDNsCtr)) + } + if in.UserNsCtr != "" { + const prefix string = ",\"userNsCtr\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.UserNsCtr)) + } + if in.UTSNsCtr != "" { + const prefix string = ",\"utsNsCtr\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.UTSNsCtr)) + } + if in.CgroupNsCtr != "" { + const prefix string = ",\"cgroupNsCtr\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.CgroupNsCtr)) + } + { + const prefix string = ",\"Dependencies\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + if in.Dependencies == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 { + out.RawString("null") + } else { + out.RawByte('[') + for v59, v60 := range in.Dependencies { + if v59 > 0 { + out.RawByte(',') + } + out.String(string(v60)) + } + out.RawByte(']') + } + } + { + const prefix string = ",\"createNetNS\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Bool(bool(in.CreateNetNS)) + } + if len(in.PortMappings) != 0 { + const prefix string = ",\"portMappings\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v61, v62 := range in.PortMappings { + if v61 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComCriOOcicniPkgOcicni(out, v62) + } + out.RawByte(']') + } + } + if len(in.DNSServer) != 0 { + const prefix string = ",\"dnsServer\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v63, v64 := range in.DNSServer { + if v63 > 0 { + out.RawByte(',') + } + out.RawText((v64).MarshalText()) + } + out.RawByte(']') + } + } + if len(in.DNSSearch) != 0 { + const prefix string = ",\"dnsSearch\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v65, v66 := range in.DNSSearch { + if v65 > 0 { + out.RawByte(',') + } + out.String(string(v66)) + } + out.RawByte(']') + } + } + if len(in.DNSOption) != 0 { + const prefix string = ",\"dnsOption\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v67, v68 := range in.DNSOption { + if v67 > 0 { + out.RawByte(',') + } + out.String(string(v68)) + } + out.RawByte(']') + } + } + if len(in.HostAdd) != 0 { + const prefix string = ",\"hostsAdd\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v69, v70 := range in.HostAdd { + if v69 > 0 { + out.RawByte(',') + } + out.String(string(v70)) + } + out.RawByte(']') + } + } + if len(in.Networks) != 0 { + const prefix string = ",\"networks\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v71, v72 := range in.Networks { + if v71 > 0 { + out.RawByte(',') + } + out.String(string(v72)) + } + out.RawByte(']') + } + } + if len(in.UserVolumes) != 0 { + const prefix string = ",\"userVolumes\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v73, v74 := range in.UserVolumes { + if v73 > 0 { + out.RawByte(',') + } + out.String(string(v74)) + } + out.RawByte(']') + } + } + if len(in.Entrypoint) != 0 { + const prefix string = ",\"entrypoint\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v75, v76 := range in.Entrypoint { + if v75 > 0 { + out.RawByte(',') + } + out.String(string(v76)) + } + out.RawByte(']') + } + } + if len(in.Command) != 0 { + const prefix string = ",\"command\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v77, v78 := range in.Command { + if v77 > 0 { + out.RawByte(',') + } + out.String(string(v78)) + } + out.RawByte(']') + } + } + if in.Stdin { + const prefix string = ",\"stdin\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Bool(bool(in.Stdin)) + } + if len(in.Labels) != 0 { + const prefix string = ",\"labels\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('{') + v79First := true + for v79Name, v79Value := range in.Labels { + if v79First { + v79First = false + } else { + out.RawByte(',') + } + out.String(string(v79Name)) + out.RawByte(':') + out.String(string(v79Value)) + } + out.RawByte('}') + } + } + if in.StopSignal != 0 { + const prefix string = ",\"stopSignal\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint(uint(in.StopSignal)) + } + if in.StopTimeout != 0 { + const prefix string = ",\"stopTimeout\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint(uint(in.StopTimeout)) + } + { + const prefix string = ",\"createdTime\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Raw((in.CreatedTime).MarshalJSON()) + } + { + const prefix string = ",\"cgroupParent\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.CgroupParent)) + } + { + const prefix string = ",\"logPath\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.LogPath)) + } + if in.ConmonPidFile != "" { + const prefix string = ",\"conmonPidFile\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.ConmonPidFile)) + } + { + const prefix string = ",\"postConfigureNetNS\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Bool(bool(in.PostConfigureNetNS)) + } + if len(in.ExitCommand) != 0 { + const prefix string = ",\"exitCommand\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v80, v81 := range in.ExitCommand { + if v80 > 0 { + out.RawByte(',') + } + out.String(string(v81)) + } + out.RawByte(']') + } + } + { + const prefix string = ",\"LocalVolumes\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + if in.LocalVolumes == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 { + out.RawString("null") + } else { + out.RawByte('[') + for v82, v83 := range in.LocalVolumes { + if v82 > 0 { + out.RawByte(',') + } + out.String(string(v83)) + } + out.RawByte(']') + } + } + out.RawByte('}') +} + +// MarshalJSON supports json.Marshaler interface +func (v ContainerConfig) MarshalJSON() ([]byte, error) { + w := jwriter.Writer{} + easyjson1dbef17bEncodeGithubComContainersLibpodLibpod2(&w, v) + return w.Buffer.BuildBytes(), w.Error +} + +// MarshalEasyJSON supports easyjson.Marshaler interface +func (v ContainerConfig) MarshalEasyJSON(w *jwriter.Writer) { + easyjson1dbef17bEncodeGithubComContainersLibpodLibpod2(w, v) +} + +// UnmarshalJSON supports json.Unmarshaler interface +func (v *ContainerConfig) UnmarshalJSON(data []byte) error { + r := jlexer.Lexer{Data: data} + easyjson1dbef17bDecodeGithubComContainersLibpodLibpod2(&r, v) + return r.Error() +} + +// UnmarshalEasyJSON supports easyjson.Unmarshaler interface +func (v *ContainerConfig) UnmarshalEasyJSON(l *jlexer.Lexer) { + easyjson1dbef17bDecodeGithubComContainersLibpodLibpod2(l, v) +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComCriOOcicniPkgOcicni(in *jlexer.Lexer, out *ocicni.PortMapping) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "hostPort": + out.HostPort = int32(in.Int32()) + case "containerPort": + out.ContainerPort = int32(in.Int32()) + case "protocol": + out.Protocol = string(in.String()) + case "hostIP": + out.HostIP = string(in.String()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComCriOOcicniPkgOcicni(out *jwriter.Writer, in ocicni.PortMapping) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"hostPort\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int32(int32(in.HostPort)) + } + { + const prefix string = ",\"containerPort\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int32(int32(in.ContainerPort)) + } + { + const prefix string = ",\"protocol\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Protocol)) + } + { + const prefix string = ",\"hostIP\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.HostIP)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComContainersStorage(in *jlexer.Lexer, out *storage.IDMappingOptions) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "HostUIDMapping": + out.HostUIDMapping = bool(in.Bool()) + case "HostGIDMapping": + out.HostGIDMapping = bool(in.Bool()) + case "UIDMap": + if in.IsNull() { + in.Skip() + out.UIDMap = nil + } else { + in.Delim('[') + if out.UIDMap == nil { + if !in.IsDelim(']') { + out.UIDMap = make([]idtools.IDMap, 0, 2) + } else { + out.UIDMap = []idtools.IDMap{} + } + } else { + out.UIDMap = (out.UIDMap)[:0] + } + for !in.IsDelim(']') { + var v84 idtools.IDMap + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComContainersStoragePkgIdtools(in, &v84) + out.UIDMap = append(out.UIDMap, v84) + in.WantComma() + } + in.Delim(']') + } + case "GIDMap": + if in.IsNull() { + in.Skip() + out.GIDMap = nil + } else { + in.Delim('[') + if out.GIDMap == nil { + if !in.IsDelim(']') { + out.GIDMap = make([]idtools.IDMap, 0, 2) + } else { + out.GIDMap = []idtools.IDMap{} + } + } else { + out.GIDMap = (out.GIDMap)[:0] + } + for !in.IsDelim(']') { + var v85 idtools.IDMap + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComContainersStoragePkgIdtools(in, &v85) + out.GIDMap = append(out.GIDMap, v85) + in.WantComma() + } + in.Delim(']') + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComContainersStorage(out *jwriter.Writer, in storage.IDMappingOptions) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"HostUIDMapping\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Bool(bool(in.HostUIDMapping)) + } + { + const prefix string = ",\"HostGIDMapping\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Bool(bool(in.HostGIDMapping)) + } + { + const prefix string = ",\"UIDMap\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + if in.UIDMap == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 { + out.RawString("null") + } else { + out.RawByte('[') + for v86, v87 := range in.UIDMap { + if v86 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComContainersStoragePkgIdtools(out, v87) + } + out.RawByte(']') + } + } + { + const prefix string = ",\"GIDMap\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + if in.GIDMap == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 { + out.RawString("null") + } else { + out.RawByte('[') + for v88, v89 := range in.GIDMap { + if v88 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComContainersStoragePkgIdtools(out, v89) + } + out.RawByte(']') + } + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComContainersStoragePkgIdtools(in *jlexer.Lexer, out *idtools.IDMap) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "container_id": + out.ContainerID = int(in.Int()) + case "host_id": + out.HostID = int(in.Int()) + case "size": + out.Size = int(in.Int()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComContainersStoragePkgIdtools(out *jwriter.Writer, in idtools.IDMap) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"container_id\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int(int(in.ContainerID)) + } + { + const prefix string = ",\"host_id\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int(int(in.HostID)) + } + { + const prefix string = ",\"size\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int(int(in.Size)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo1(in *jlexer.Lexer, out *specs_go.Spec) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "ociVersion": + out.Version = string(in.String()) + case "process": + if in.IsNull() { + in.Skip() + out.Process = nil + } else { + if out.Process == nil { + out.Process = new(specs_go.Process) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo2(in, &*out.Process) + } + case "root": + if in.IsNull() { + in.Skip() + out.Root = nil + } else { + if out.Root == nil { + out.Root = new(specs_go.Root) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo3(in, &*out.Root) + } + case "hostname": + out.Hostname = string(in.String()) + case "mounts": + if in.IsNull() { + in.Skip() + out.Mounts = nil + } else { + in.Delim('[') + if out.Mounts == nil { + if !in.IsDelim(']') { + out.Mounts = make([]specs_go.Mount, 0, 1) + } else { + out.Mounts = []specs_go.Mount{} + } + } else { + out.Mounts = (out.Mounts)[:0] + } + for !in.IsDelim(']') { + var v90 specs_go.Mount + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo4(in, &v90) + out.Mounts = append(out.Mounts, v90) + in.WantComma() + } + in.Delim(']') + } + case "hooks": + if in.IsNull() { + in.Skip() + out.Hooks = nil + } else { + if out.Hooks == nil { + out.Hooks = new(specs_go.Hooks) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo5(in, &*out.Hooks) + } + case "annotations": + if in.IsNull() { + in.Skip() + } else { + in.Delim('{') + if !in.IsDelim('}') { + out.Annotations = make(map[string]string) + } else { + out.Annotations = nil + } + for !in.IsDelim('}') { + key := string(in.String()) + in.WantColon() + var v91 string + v91 = string(in.String()) + (out.Annotations)[key] = v91 + in.WantComma() + } + in.Delim('}') + } + case "linux": + if in.IsNull() { + in.Skip() + out.Linux = nil + } else { + if out.Linux == nil { + out.Linux = new(specs_go.Linux) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo6(in, &*out.Linux) + } + case "solaris": + if in.IsNull() { + in.Skip() + out.Solaris = nil + } else { + if out.Solaris == nil { + out.Solaris = new(specs_go.Solaris) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo7(in, &*out.Solaris) + } + case "windows": + if in.IsNull() { + in.Skip() + out.Windows = nil + } else { + if out.Windows == nil { + out.Windows = new(specs_go.Windows) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo8(in, &*out.Windows) + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo1(out *jwriter.Writer, in specs_go.Spec) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"ociVersion\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Version)) + } + if in.Process != nil { + const prefix string = ",\"process\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo2(out, *in.Process) + } + if in.Root != nil { + const prefix string = ",\"root\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo3(out, *in.Root) + } + if in.Hostname != "" { + const prefix string = ",\"hostname\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Hostname)) + } + if len(in.Mounts) != 0 { + const prefix string = ",\"mounts\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v92, v93 := range in.Mounts { + if v92 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo4(out, v93) + } + out.RawByte(']') + } + } + if in.Hooks != nil { + const prefix string = ",\"hooks\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo5(out, *in.Hooks) + } + if len(in.Annotations) != 0 { + const prefix string = ",\"annotations\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('{') + v94First := true + for v94Name, v94Value := range in.Annotations { + if v94First { + v94First = false + } else { + out.RawByte(',') + } + out.String(string(v94Name)) + out.RawByte(':') + out.String(string(v94Value)) + } + out.RawByte('}') + } + } + if in.Linux != nil { + const prefix string = ",\"linux\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo6(out, *in.Linux) + } + if in.Solaris != nil { + const prefix string = ",\"solaris\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo7(out, *in.Solaris) + } + if in.Windows != nil { + const prefix string = ",\"windows\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo8(out, *in.Windows) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo8(in *jlexer.Lexer, out *specs_go.Windows) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "layerFolders": + if in.IsNull() { + in.Skip() + out.LayerFolders = nil + } else { + in.Delim('[') + if out.LayerFolders == nil { + if !in.IsDelim(']') { + out.LayerFolders = make([]string, 0, 4) + } else { + out.LayerFolders = []string{} + } + } else { + out.LayerFolders = (out.LayerFolders)[:0] + } + for !in.IsDelim(']') { + var v95 string + v95 = string(in.String()) + out.LayerFolders = append(out.LayerFolders, v95) + in.WantComma() + } + in.Delim(']') + } + case "resources": + if in.IsNull() { + in.Skip() + out.Resources = nil + } else { + if out.Resources == nil { + out.Resources = new(specs_go.WindowsResources) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo9(in, &*out.Resources) + } + case "credentialSpec": + if m, ok := out.CredentialSpec.(easyjson.Unmarshaler); ok { + m.UnmarshalEasyJSON(in) + } else if m, ok := out.CredentialSpec.(json.Unmarshaler); ok { + _ = m.UnmarshalJSON(in.Raw()) + } else { + out.CredentialSpec = in.Interface() + } + case "servicing": + out.Servicing = bool(in.Bool()) + case "ignoreFlushesDuringBoot": + out.IgnoreFlushesDuringBoot = bool(in.Bool()) + case "hyperv": + if in.IsNull() { + in.Skip() + out.HyperV = nil + } else { + if out.HyperV == nil { + out.HyperV = new(specs_go.WindowsHyperV) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo10(in, &*out.HyperV) + } + case "network": + if in.IsNull() { + in.Skip() + out.Network = nil + } else { + if out.Network == nil { + out.Network = new(specs_go.WindowsNetwork) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo11(in, &*out.Network) + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo8(out *jwriter.Writer, in specs_go.Windows) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"layerFolders\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + if in.LayerFolders == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 { + out.RawString("null") + } else { + out.RawByte('[') + for v96, v97 := range in.LayerFolders { + if v96 > 0 { + out.RawByte(',') + } + out.String(string(v97)) + } + out.RawByte(']') + } + } + if in.Resources != nil { + const prefix string = ",\"resources\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo9(out, *in.Resources) + } + if in.CredentialSpec != nil { + const prefix string = ",\"credentialSpec\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + if m, ok := in.CredentialSpec.(easyjson.Marshaler); ok { + m.MarshalEasyJSON(out) + } else if m, ok := in.CredentialSpec.(json.Marshaler); ok { + out.Raw(m.MarshalJSON()) + } else { + out.Raw(json.Marshal(in.CredentialSpec)) + } + } + if in.Servicing { + const prefix string = ",\"servicing\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Bool(bool(in.Servicing)) + } + if in.IgnoreFlushesDuringBoot { + const prefix string = ",\"ignoreFlushesDuringBoot\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Bool(bool(in.IgnoreFlushesDuringBoot)) + } + if in.HyperV != nil { + const prefix string = ",\"hyperv\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo10(out, *in.HyperV) + } + if in.Network != nil { + const prefix string = ",\"network\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo11(out, *in.Network) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo11(in *jlexer.Lexer, out *specs_go.WindowsNetwork) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "endpointList": + if in.IsNull() { + in.Skip() + out.EndpointList = nil + } else { + in.Delim('[') + if out.EndpointList == nil { + if !in.IsDelim(']') { + out.EndpointList = make([]string, 0, 4) + } else { + out.EndpointList = []string{} + } + } else { + out.EndpointList = (out.EndpointList)[:0] + } + for !in.IsDelim(']') { + var v98 string + v98 = string(in.String()) + out.EndpointList = append(out.EndpointList, v98) + in.WantComma() + } + in.Delim(']') + } + case "allowUnqualifiedDNSQuery": + out.AllowUnqualifiedDNSQuery = bool(in.Bool()) + case "DNSSearchList": + if in.IsNull() { + in.Skip() + out.DNSSearchList = nil + } else { + in.Delim('[') + if out.DNSSearchList == nil { + if !in.IsDelim(']') { + out.DNSSearchList = make([]string, 0, 4) + } else { + out.DNSSearchList = []string{} + } + } else { + out.DNSSearchList = (out.DNSSearchList)[:0] + } + for !in.IsDelim(']') { + var v99 string + v99 = string(in.String()) + out.DNSSearchList = append(out.DNSSearchList, v99) + in.WantComma() + } + in.Delim(']') + } + case "networkSharedContainerName": + out.NetworkSharedContainerName = string(in.String()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo11(out *jwriter.Writer, in specs_go.WindowsNetwork) { + out.RawByte('{') + first := true + _ = first + if len(in.EndpointList) != 0 { + const prefix string = ",\"endpointList\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v100, v101 := range in.EndpointList { + if v100 > 0 { + out.RawByte(',') + } + out.String(string(v101)) + } + out.RawByte(']') + } + } + if in.AllowUnqualifiedDNSQuery { + const prefix string = ",\"allowUnqualifiedDNSQuery\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Bool(bool(in.AllowUnqualifiedDNSQuery)) + } + if len(in.DNSSearchList) != 0 { + const prefix string = ",\"DNSSearchList\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v102, v103 := range in.DNSSearchList { + if v102 > 0 { + out.RawByte(',') + } + out.String(string(v103)) + } + out.RawByte(']') + } + } + if in.NetworkSharedContainerName != "" { + const prefix string = ",\"networkSharedContainerName\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.NetworkSharedContainerName)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo10(in *jlexer.Lexer, out *specs_go.WindowsHyperV) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "utilityVMPath": + out.UtilityVMPath = string(in.String()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo10(out *jwriter.Writer, in specs_go.WindowsHyperV) { + out.RawByte('{') + first := true + _ = first + if in.UtilityVMPath != "" { + const prefix string = ",\"utilityVMPath\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.UtilityVMPath)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo9(in *jlexer.Lexer, out *specs_go.WindowsResources) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "memory": + if in.IsNull() { + in.Skip() + out.Memory = nil + } else { + if out.Memory == nil { + out.Memory = new(specs_go.WindowsMemoryResources) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo12(in, &*out.Memory) + } + case "cpu": + if in.IsNull() { + in.Skip() + out.CPU = nil + } else { + if out.CPU == nil { + out.CPU = new(specs_go.WindowsCPUResources) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo13(in, &*out.CPU) + } + case "storage": + if in.IsNull() { + in.Skip() + out.Storage = nil + } else { + if out.Storage == nil { + out.Storage = new(specs_go.WindowsStorageResources) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo14(in, &*out.Storage) + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo9(out *jwriter.Writer, in specs_go.WindowsResources) { + out.RawByte('{') + first := true + _ = first + if in.Memory != nil { + const prefix string = ",\"memory\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo12(out, *in.Memory) + } + if in.CPU != nil { + const prefix string = ",\"cpu\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo13(out, *in.CPU) + } + if in.Storage != nil { + const prefix string = ",\"storage\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo14(out, *in.Storage) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo14(in *jlexer.Lexer, out *specs_go.WindowsStorageResources) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "iops": + if in.IsNull() { + in.Skip() + out.Iops = nil + } else { + if out.Iops == nil { + out.Iops = new(uint64) + } + *out.Iops = uint64(in.Uint64()) + } + case "bps": + if in.IsNull() { + in.Skip() + out.Bps = nil + } else { + if out.Bps == nil { + out.Bps = new(uint64) + } + *out.Bps = uint64(in.Uint64()) + } + case "sandboxSize": + if in.IsNull() { + in.Skip() + out.SandboxSize = nil + } else { + if out.SandboxSize == nil { + out.SandboxSize = new(uint64) + } + *out.SandboxSize = uint64(in.Uint64()) + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo14(out *jwriter.Writer, in specs_go.WindowsStorageResources) { + out.RawByte('{') + first := true + _ = first + if in.Iops != nil { + const prefix string = ",\"iops\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint64(uint64(*in.Iops)) + } + if in.Bps != nil { + const prefix string = ",\"bps\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint64(uint64(*in.Bps)) + } + if in.SandboxSize != nil { + const prefix string = ",\"sandboxSize\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint64(uint64(*in.SandboxSize)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo13(in *jlexer.Lexer, out *specs_go.WindowsCPUResources) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "count": + if in.IsNull() { + in.Skip() + out.Count = nil + } else { + if out.Count == nil { + out.Count = new(uint64) + } + *out.Count = uint64(in.Uint64()) + } + case "shares": + if in.IsNull() { + in.Skip() + out.Shares = nil + } else { + if out.Shares == nil { + out.Shares = new(uint16) + } + *out.Shares = uint16(in.Uint16()) + } + case "maximum": + if in.IsNull() { + in.Skip() + out.Maximum = nil + } else { + if out.Maximum == nil { + out.Maximum = new(uint16) + } + *out.Maximum = uint16(in.Uint16()) + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo13(out *jwriter.Writer, in specs_go.WindowsCPUResources) { + out.RawByte('{') + first := true + _ = first + if in.Count != nil { + const prefix string = ",\"count\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint64(uint64(*in.Count)) + } + if in.Shares != nil { + const prefix string = ",\"shares\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint16(uint16(*in.Shares)) + } + if in.Maximum != nil { + const prefix string = ",\"maximum\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint16(uint16(*in.Maximum)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo12(in *jlexer.Lexer, out *specs_go.WindowsMemoryResources) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "limit": + if in.IsNull() { + in.Skip() + out.Limit = nil + } else { + if out.Limit == nil { + out.Limit = new(uint64) + } + *out.Limit = uint64(in.Uint64()) + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo12(out *jwriter.Writer, in specs_go.WindowsMemoryResources) { + out.RawByte('{') + first := true + _ = first + if in.Limit != nil { + const prefix string = ",\"limit\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint64(uint64(*in.Limit)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo7(in *jlexer.Lexer, out *specs_go.Solaris) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "milestone": + out.Milestone = string(in.String()) + case "limitpriv": + out.LimitPriv = string(in.String()) + case "maxShmMemory": + out.MaxShmMemory = string(in.String()) + case "anet": + if in.IsNull() { + in.Skip() + out.Anet = nil + } else { + in.Delim('[') + if out.Anet == nil { + if !in.IsDelim(']') { + out.Anet = make([]specs_go.SolarisAnet, 0, 1) + } else { + out.Anet = []specs_go.SolarisAnet{} + } + } else { + out.Anet = (out.Anet)[:0] + } + for !in.IsDelim(']') { + var v104 specs_go.SolarisAnet + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo15(in, &v104) + out.Anet = append(out.Anet, v104) + in.WantComma() + } + in.Delim(']') + } + case "cappedCPU": + if in.IsNull() { + in.Skip() + out.CappedCPU = nil + } else { + if out.CappedCPU == nil { + out.CappedCPU = new(specs_go.SolarisCappedCPU) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo16(in, &*out.CappedCPU) + } + case "cappedMemory": + if in.IsNull() { + in.Skip() + out.CappedMemory = nil + } else { + if out.CappedMemory == nil { + out.CappedMemory = new(specs_go.SolarisCappedMemory) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo17(in, &*out.CappedMemory) + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo7(out *jwriter.Writer, in specs_go.Solaris) { + out.RawByte('{') + first := true + _ = first + if in.Milestone != "" { + const prefix string = ",\"milestone\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Milestone)) + } + if in.LimitPriv != "" { + const prefix string = ",\"limitpriv\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.LimitPriv)) + } + if in.MaxShmMemory != "" { + const prefix string = ",\"maxShmMemory\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.MaxShmMemory)) + } + if len(in.Anet) != 0 { + const prefix string = ",\"anet\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v105, v106 := range in.Anet { + if v105 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo15(out, v106) + } + out.RawByte(']') + } + } + if in.CappedCPU != nil { + const prefix string = ",\"cappedCPU\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo16(out, *in.CappedCPU) + } + if in.CappedMemory != nil { + const prefix string = ",\"cappedMemory\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo17(out, *in.CappedMemory) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo17(in *jlexer.Lexer, out *specs_go.SolarisCappedMemory) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "physical": + out.Physical = string(in.String()) + case "swap": + out.Swap = string(in.String()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo17(out *jwriter.Writer, in specs_go.SolarisCappedMemory) { + out.RawByte('{') + first := true + _ = first + if in.Physical != "" { + const prefix string = ",\"physical\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Physical)) + } + if in.Swap != "" { + const prefix string = ",\"swap\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Swap)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo16(in *jlexer.Lexer, out *specs_go.SolarisCappedCPU) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "ncpus": + out.Ncpus = string(in.String()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo16(out *jwriter.Writer, in specs_go.SolarisCappedCPU) { + out.RawByte('{') + first := true + _ = first + if in.Ncpus != "" { + const prefix string = ",\"ncpus\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Ncpus)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo15(in *jlexer.Lexer, out *specs_go.SolarisAnet) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "linkname": + out.Linkname = string(in.String()) + case "lowerLink": + out.Lowerlink = string(in.String()) + case "allowedAddress": + out.Allowedaddr = string(in.String()) + case "configureAllowedAddress": + out.Configallowedaddr = string(in.String()) + case "defrouter": + out.Defrouter = string(in.String()) + case "linkProtection": + out.Linkprotection = string(in.String()) + case "macAddress": + out.Macaddress = string(in.String()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo15(out *jwriter.Writer, in specs_go.SolarisAnet) { + out.RawByte('{') + first := true + _ = first + if in.Linkname != "" { + const prefix string = ",\"linkname\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Linkname)) + } + if in.Lowerlink != "" { + const prefix string = ",\"lowerLink\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Lowerlink)) + } + if in.Allowedaddr != "" { + const prefix string = ",\"allowedAddress\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Allowedaddr)) + } + if in.Configallowedaddr != "" { + const prefix string = ",\"configureAllowedAddress\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Configallowedaddr)) + } + if in.Defrouter != "" { + const prefix string = ",\"defrouter\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Defrouter)) + } + if in.Linkprotection != "" { + const prefix string = ",\"linkProtection\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Linkprotection)) + } + if in.Macaddress != "" { + const prefix string = ",\"macAddress\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Macaddress)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo6(in *jlexer.Lexer, out *specs_go.Linux) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "uidMappings": + if in.IsNull() { + in.Skip() + out.UIDMappings = nil + } else { + in.Delim('[') + if out.UIDMappings == nil { + if !in.IsDelim(']') { + out.UIDMappings = make([]specs_go.LinuxIDMapping, 0, 5) + } else { + out.UIDMappings = []specs_go.LinuxIDMapping{} + } + } else { + out.UIDMappings = (out.UIDMappings)[:0] + } + for !in.IsDelim(']') { + var v107 specs_go.LinuxIDMapping + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo18(in, &v107) + out.UIDMappings = append(out.UIDMappings, v107) + in.WantComma() + } + in.Delim(']') + } + case "gidMappings": + if in.IsNull() { + in.Skip() + out.GIDMappings = nil + } else { + in.Delim('[') + if out.GIDMappings == nil { + if !in.IsDelim(']') { + out.GIDMappings = make([]specs_go.LinuxIDMapping, 0, 5) + } else { + out.GIDMappings = []specs_go.LinuxIDMapping{} + } + } else { + out.GIDMappings = (out.GIDMappings)[:0] + } + for !in.IsDelim(']') { + var v108 specs_go.LinuxIDMapping + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo18(in, &v108) + out.GIDMappings = append(out.GIDMappings, v108) + in.WantComma() + } + in.Delim(']') + } + case "sysctl": + if in.IsNull() { + in.Skip() + } else { + in.Delim('{') + if !in.IsDelim('}') { + out.Sysctl = make(map[string]string) + } else { + out.Sysctl = nil + } + for !in.IsDelim('}') { + key := string(in.String()) + in.WantColon() + var v109 string + v109 = string(in.String()) + (out.Sysctl)[key] = v109 + in.WantComma() + } + in.Delim('}') + } + case "resources": + if in.IsNull() { + in.Skip() + out.Resources = nil + } else { + if out.Resources == nil { + out.Resources = new(specs_go.LinuxResources) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo19(in, &*out.Resources) + } + case "cgroupsPath": + out.CgroupsPath = string(in.String()) + case "namespaces": + if in.IsNull() { + in.Skip() + out.Namespaces = nil + } else { + in.Delim('[') + if out.Namespaces == nil { + if !in.IsDelim(']') { + out.Namespaces = make([]specs_go.LinuxNamespace, 0, 2) + } else { + out.Namespaces = []specs_go.LinuxNamespace{} + } + } else { + out.Namespaces = (out.Namespaces)[:0] + } + for !in.IsDelim(']') { + var v110 specs_go.LinuxNamespace + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo20(in, &v110) + out.Namespaces = append(out.Namespaces, v110) + in.WantComma() + } + in.Delim(']') + } + case "devices": + if in.IsNull() { + in.Skip() + out.Devices = nil + } else { + in.Delim('[') + if out.Devices == nil { + if !in.IsDelim(']') { + out.Devices = make([]specs_go.LinuxDevice, 0, 1) + } else { + out.Devices = []specs_go.LinuxDevice{} + } + } else { + out.Devices = (out.Devices)[:0] + } + for !in.IsDelim(']') { + var v111 specs_go.LinuxDevice + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo21(in, &v111) + out.Devices = append(out.Devices, v111) + in.WantComma() + } + in.Delim(']') + } + case "seccomp": + if in.IsNull() { + in.Skip() + out.Seccomp = nil + } else { + if out.Seccomp == nil { + out.Seccomp = new(specs_go.LinuxSeccomp) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo22(in, &*out.Seccomp) + } + case "rootfsPropagation": + out.RootfsPropagation = string(in.String()) + case "maskedPaths": + if in.IsNull() { + in.Skip() + out.MaskedPaths = nil + } else { + in.Delim('[') + if out.MaskedPaths == nil { + if !in.IsDelim(']') { + out.MaskedPaths = make([]string, 0, 4) + } else { + out.MaskedPaths = []string{} + } + } else { + out.MaskedPaths = (out.MaskedPaths)[:0] + } + for !in.IsDelim(']') { + var v112 string + v112 = string(in.String()) + out.MaskedPaths = append(out.MaskedPaths, v112) + in.WantComma() + } + in.Delim(']') + } + case "readonlyPaths": + if in.IsNull() { + in.Skip() + out.ReadonlyPaths = nil + } else { + in.Delim('[') + if out.ReadonlyPaths == nil { + if !in.IsDelim(']') { + out.ReadonlyPaths = make([]string, 0, 4) + } else { + out.ReadonlyPaths = []string{} + } + } else { + out.ReadonlyPaths = (out.ReadonlyPaths)[:0] + } + for !in.IsDelim(']') { + var v113 string + v113 = string(in.String()) + out.ReadonlyPaths = append(out.ReadonlyPaths, v113) + in.WantComma() + } + in.Delim(']') + } + case "mountLabel": + out.MountLabel = string(in.String()) + case "intelRdt": + if in.IsNull() { + in.Skip() + out.IntelRdt = nil + } else { + if out.IntelRdt == nil { + out.IntelRdt = new(specs_go.LinuxIntelRdt) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo23(in, &*out.IntelRdt) + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo6(out *jwriter.Writer, in specs_go.Linux) { + out.RawByte('{') + first := true + _ = first + if len(in.UIDMappings) != 0 { + const prefix string = ",\"uidMappings\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v114, v115 := range in.UIDMappings { + if v114 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo18(out, v115) + } + out.RawByte(']') + } + } + if len(in.GIDMappings) != 0 { + const prefix string = ",\"gidMappings\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v116, v117 := range in.GIDMappings { + if v116 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo18(out, v117) + } + out.RawByte(']') + } + } + if len(in.Sysctl) != 0 { + const prefix string = ",\"sysctl\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('{') + v118First := true + for v118Name, v118Value := range in.Sysctl { + if v118First { + v118First = false + } else { + out.RawByte(',') + } + out.String(string(v118Name)) + out.RawByte(':') + out.String(string(v118Value)) + } + out.RawByte('}') + } + } + if in.Resources != nil { + const prefix string = ",\"resources\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo19(out, *in.Resources) + } + if in.CgroupsPath != "" { + const prefix string = ",\"cgroupsPath\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.CgroupsPath)) + } + if len(in.Namespaces) != 0 { + const prefix string = ",\"namespaces\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v119, v120 := range in.Namespaces { + if v119 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo20(out, v120) + } + out.RawByte(']') + } + } + if len(in.Devices) != 0 { + const prefix string = ",\"devices\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v121, v122 := range in.Devices { + if v121 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo21(out, v122) + } + out.RawByte(']') + } + } + if in.Seccomp != nil { + const prefix string = ",\"seccomp\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo22(out, *in.Seccomp) + } + if in.RootfsPropagation != "" { + const prefix string = ",\"rootfsPropagation\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.RootfsPropagation)) + } + if len(in.MaskedPaths) != 0 { + const prefix string = ",\"maskedPaths\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v123, v124 := range in.MaskedPaths { + if v123 > 0 { + out.RawByte(',') + } + out.String(string(v124)) + } + out.RawByte(']') + } + } + if len(in.ReadonlyPaths) != 0 { + const prefix string = ",\"readonlyPaths\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v125, v126 := range in.ReadonlyPaths { + if v125 > 0 { + out.RawByte(',') + } + out.String(string(v126)) + } + out.RawByte(']') + } + } + if in.MountLabel != "" { + const prefix string = ",\"mountLabel\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.MountLabel)) + } + if in.IntelRdt != nil { + const prefix string = ",\"intelRdt\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo23(out, *in.IntelRdt) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo23(in *jlexer.Lexer, out *specs_go.LinuxIntelRdt) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "l3CacheSchema": + out.L3CacheSchema = string(in.String()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo23(out *jwriter.Writer, in specs_go.LinuxIntelRdt) { + out.RawByte('{') + first := true + _ = first + if in.L3CacheSchema != "" { + const prefix string = ",\"l3CacheSchema\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.L3CacheSchema)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo22(in *jlexer.Lexer, out *specs_go.LinuxSeccomp) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "defaultAction": + out.DefaultAction = specs_go.LinuxSeccompAction(in.String()) + case "architectures": + if in.IsNull() { + in.Skip() + out.Architectures = nil + } else { + in.Delim('[') + if out.Architectures == nil { + if !in.IsDelim(']') { + out.Architectures = make([]specs_go.Arch, 0, 4) + } else { + out.Architectures = []specs_go.Arch{} + } + } else { + out.Architectures = (out.Architectures)[:0] + } + for !in.IsDelim(']') { + var v127 specs_go.Arch + v127 = specs_go.Arch(in.String()) + out.Architectures = append(out.Architectures, v127) + in.WantComma() + } + in.Delim(']') + } + case "syscalls": + if in.IsNull() { + in.Skip() + out.Syscalls = nil + } else { + in.Delim('[') + if out.Syscalls == nil { + if !in.IsDelim(']') { + out.Syscalls = make([]specs_go.LinuxSyscall, 0, 1) + } else { + out.Syscalls = []specs_go.LinuxSyscall{} + } + } else { + out.Syscalls = (out.Syscalls)[:0] + } + for !in.IsDelim(']') { + var v128 specs_go.LinuxSyscall + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo24(in, &v128) + out.Syscalls = append(out.Syscalls, v128) + in.WantComma() + } + in.Delim(']') + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo22(out *jwriter.Writer, in specs_go.LinuxSeccomp) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"defaultAction\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.DefaultAction)) + } + if len(in.Architectures) != 0 { + const prefix string = ",\"architectures\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v129, v130 := range in.Architectures { + if v129 > 0 { + out.RawByte(',') + } + out.String(string(v130)) + } + out.RawByte(']') + } + } + if len(in.Syscalls) != 0 { + const prefix string = ",\"syscalls\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v131, v132 := range in.Syscalls { + if v131 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo24(out, v132) + } + out.RawByte(']') + } + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo24(in *jlexer.Lexer, out *specs_go.LinuxSyscall) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "names": + if in.IsNull() { + in.Skip() + out.Names = nil + } else { + in.Delim('[') + if out.Names == nil { + if !in.IsDelim(']') { + out.Names = make([]string, 0, 4) + } else { + out.Names = []string{} + } + } else { + out.Names = (out.Names)[:0] + } + for !in.IsDelim(']') { + var v133 string + v133 = string(in.String()) + out.Names = append(out.Names, v133) + in.WantComma() + } + in.Delim(']') + } + case "action": + out.Action = specs_go.LinuxSeccompAction(in.String()) + case "args": + if in.IsNull() { + in.Skip() + out.Args = nil + } else { + in.Delim('[') + if out.Args == nil { + if !in.IsDelim(']') { + out.Args = make([]specs_go.LinuxSeccompArg, 0, 1) + } else { + out.Args = []specs_go.LinuxSeccompArg{} + } + } else { + out.Args = (out.Args)[:0] + } + for !in.IsDelim(']') { + var v134 specs_go.LinuxSeccompArg + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo25(in, &v134) + out.Args = append(out.Args, v134) + in.WantComma() + } + in.Delim(']') + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo24(out *jwriter.Writer, in specs_go.LinuxSyscall) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"names\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + if in.Names == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 { + out.RawString("null") + } else { + out.RawByte('[') + for v135, v136 := range in.Names { + if v135 > 0 { + out.RawByte(',') + } + out.String(string(v136)) + } + out.RawByte(']') + } + } + { + const prefix string = ",\"action\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Action)) + } + if len(in.Args) != 0 { + const prefix string = ",\"args\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v137, v138 := range in.Args { + if v137 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo25(out, v138) + } + out.RawByte(']') + } + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo25(in *jlexer.Lexer, out *specs_go.LinuxSeccompArg) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "index": + out.Index = uint(in.Uint()) + case "value": + out.Value = uint64(in.Uint64()) + case "valueTwo": + out.ValueTwo = uint64(in.Uint64()) + case "op": + out.Op = specs_go.LinuxSeccompOperator(in.String()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo25(out *jwriter.Writer, in specs_go.LinuxSeccompArg) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"index\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint(uint(in.Index)) + } + { + const prefix string = ",\"value\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint64(uint64(in.Value)) + } + if in.ValueTwo != 0 { + const prefix string = ",\"valueTwo\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint64(uint64(in.ValueTwo)) + } + { + const prefix string = ",\"op\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Op)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo21(in *jlexer.Lexer, out *specs_go.LinuxDevice) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "path": + out.Path = string(in.String()) + case "type": + out.Type = string(in.String()) + case "major": + out.Major = int64(in.Int64()) + case "minor": + out.Minor = int64(in.Int64()) + case "fileMode": + if in.IsNull() { + in.Skip() + out.FileMode = nil + } else { + if out.FileMode == nil { + out.FileMode = new(os.FileMode) + } + *out.FileMode = os.FileMode(in.Uint32()) + } + case "uid": + if in.IsNull() { + in.Skip() + out.UID = nil + } else { + if out.UID == nil { + out.UID = new(uint32) + } + *out.UID = uint32(in.Uint32()) + } + case "gid": + if in.IsNull() { + in.Skip() + out.GID = nil + } else { + if out.GID == nil { + out.GID = new(uint32) + } + *out.GID = uint32(in.Uint32()) + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo21(out *jwriter.Writer, in specs_go.LinuxDevice) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"path\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Path)) + } + { + const prefix string = ",\"type\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Type)) + } + { + const prefix string = ",\"major\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int64(int64(in.Major)) + } + { + const prefix string = ",\"minor\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int64(int64(in.Minor)) + } + if in.FileMode != nil { + const prefix string = ",\"fileMode\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint32(uint32(*in.FileMode)) + } + if in.UID != nil { + const prefix string = ",\"uid\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint32(uint32(*in.UID)) + } + if in.GID != nil { + const prefix string = ",\"gid\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint32(uint32(*in.GID)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo20(in *jlexer.Lexer, out *specs_go.LinuxNamespace) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "type": + out.Type = specs_go.LinuxNamespaceType(in.String()) + case "path": + out.Path = string(in.String()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo20(out *jwriter.Writer, in specs_go.LinuxNamespace) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"type\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Type)) + } + if in.Path != "" { + const prefix string = ",\"path\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Path)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo19(in *jlexer.Lexer, out *specs_go.LinuxResources) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "devices": + if in.IsNull() { + in.Skip() + out.Devices = nil + } else { + in.Delim('[') + if out.Devices == nil { + if !in.IsDelim(']') { + out.Devices = make([]specs_go.LinuxDeviceCgroup, 0, 1) + } else { + out.Devices = []specs_go.LinuxDeviceCgroup{} + } + } else { + out.Devices = (out.Devices)[:0] + } + for !in.IsDelim(']') { + var v139 specs_go.LinuxDeviceCgroup + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo26(in, &v139) + out.Devices = append(out.Devices, v139) + in.WantComma() + } + in.Delim(']') + } + case "memory": + if in.IsNull() { + in.Skip() + out.Memory = nil + } else { + if out.Memory == nil { + out.Memory = new(specs_go.LinuxMemory) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo27(in, &*out.Memory) + } + case "cpu": + if in.IsNull() { + in.Skip() + out.CPU = nil + } else { + if out.CPU == nil { + out.CPU = new(specs_go.LinuxCPU) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo28(in, &*out.CPU) + } + case "pids": + if in.IsNull() { + in.Skip() + out.Pids = nil + } else { + if out.Pids == nil { + out.Pids = new(specs_go.LinuxPids) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo29(in, &*out.Pids) + } + case "blockIO": + if in.IsNull() { + in.Skip() + out.BlockIO = nil + } else { + if out.BlockIO == nil { + out.BlockIO = new(specs_go.LinuxBlockIO) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo30(in, &*out.BlockIO) + } + case "hugepageLimits": + if in.IsNull() { + in.Skip() + out.HugepageLimits = nil + } else { + in.Delim('[') + if out.HugepageLimits == nil { + if !in.IsDelim(']') { + out.HugepageLimits = make([]specs_go.LinuxHugepageLimit, 0, 2) + } else { + out.HugepageLimits = []specs_go.LinuxHugepageLimit{} + } + } else { + out.HugepageLimits = (out.HugepageLimits)[:0] + } + for !in.IsDelim(']') { + var v140 specs_go.LinuxHugepageLimit + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo31(in, &v140) + out.HugepageLimits = append(out.HugepageLimits, v140) + in.WantComma() + } + in.Delim(']') + } + case "network": + if in.IsNull() { + in.Skip() + out.Network = nil + } else { + if out.Network == nil { + out.Network = new(specs_go.LinuxNetwork) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo32(in, &*out.Network) + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo19(out *jwriter.Writer, in specs_go.LinuxResources) { + out.RawByte('{') + first := true + _ = first + if len(in.Devices) != 0 { + const prefix string = ",\"devices\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v141, v142 := range in.Devices { + if v141 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo26(out, v142) + } + out.RawByte(']') + } + } + if in.Memory != nil { + const prefix string = ",\"memory\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo27(out, *in.Memory) + } + if in.CPU != nil { + const prefix string = ",\"cpu\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo28(out, *in.CPU) + } + if in.Pids != nil { + const prefix string = ",\"pids\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo29(out, *in.Pids) + } + if in.BlockIO != nil { + const prefix string = ",\"blockIO\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo30(out, *in.BlockIO) + } + if len(in.HugepageLimits) != 0 { + const prefix string = ",\"hugepageLimits\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v143, v144 := range in.HugepageLimits { + if v143 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo31(out, v144) + } + out.RawByte(']') + } + } + if in.Network != nil { + const prefix string = ",\"network\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo32(out, *in.Network) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo32(in *jlexer.Lexer, out *specs_go.LinuxNetwork) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "classID": + if in.IsNull() { + in.Skip() + out.ClassID = nil + } else { + if out.ClassID == nil { + out.ClassID = new(uint32) + } + *out.ClassID = uint32(in.Uint32()) + } + case "priorities": + if in.IsNull() { + in.Skip() + out.Priorities = nil + } else { + in.Delim('[') + if out.Priorities == nil { + if !in.IsDelim(']') { + out.Priorities = make([]specs_go.LinuxInterfacePriority, 0, 2) + } else { + out.Priorities = []specs_go.LinuxInterfacePriority{} + } + } else { + out.Priorities = (out.Priorities)[:0] + } + for !in.IsDelim(']') { + var v145 specs_go.LinuxInterfacePriority + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo33(in, &v145) + out.Priorities = append(out.Priorities, v145) + in.WantComma() + } + in.Delim(']') + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo32(out *jwriter.Writer, in specs_go.LinuxNetwork) { + out.RawByte('{') + first := true + _ = first + if in.ClassID != nil { + const prefix string = ",\"classID\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint32(uint32(*in.ClassID)) + } + if len(in.Priorities) != 0 { + const prefix string = ",\"priorities\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v146, v147 := range in.Priorities { + if v146 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo33(out, v147) + } + out.RawByte(']') + } + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo33(in *jlexer.Lexer, out *specs_go.LinuxInterfacePriority) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "name": + out.Name = string(in.String()) + case "priority": + out.Priority = uint32(in.Uint32()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo33(out *jwriter.Writer, in specs_go.LinuxInterfacePriority) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"name\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Name)) + } + { + const prefix string = ",\"priority\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint32(uint32(in.Priority)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo31(in *jlexer.Lexer, out *specs_go.LinuxHugepageLimit) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "pageSize": + out.Pagesize = string(in.String()) + case "limit": + out.Limit = uint64(in.Uint64()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo31(out *jwriter.Writer, in specs_go.LinuxHugepageLimit) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"pageSize\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Pagesize)) + } + { + const prefix string = ",\"limit\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint64(uint64(in.Limit)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo30(in *jlexer.Lexer, out *specs_go.LinuxBlockIO) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "weight": + if in.IsNull() { + in.Skip() + out.Weight = nil + } else { + if out.Weight == nil { + out.Weight = new(uint16) + } + *out.Weight = uint16(in.Uint16()) + } + case "leafWeight": + if in.IsNull() { + in.Skip() + out.LeafWeight = nil + } else { + if out.LeafWeight == nil { + out.LeafWeight = new(uint16) + } + *out.LeafWeight = uint16(in.Uint16()) + } + case "weightDevice": + if in.IsNull() { + in.Skip() + out.WeightDevice = nil + } else { + in.Delim('[') + if out.WeightDevice == nil { + if !in.IsDelim(']') { + out.WeightDevice = make([]specs_go.LinuxWeightDevice, 0, 2) + } else { + out.WeightDevice = []specs_go.LinuxWeightDevice{} + } + } else { + out.WeightDevice = (out.WeightDevice)[:0] + } + for !in.IsDelim(']') { + var v148 specs_go.LinuxWeightDevice + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo34(in, &v148) + out.WeightDevice = append(out.WeightDevice, v148) + in.WantComma() + } + in.Delim(']') + } + case "throttleReadBpsDevice": + if in.IsNull() { + in.Skip() + out.ThrottleReadBpsDevice = nil + } else { + in.Delim('[') + if out.ThrottleReadBpsDevice == nil { + if !in.IsDelim(']') { + out.ThrottleReadBpsDevice = make([]specs_go.LinuxThrottleDevice, 0, 2) + } else { + out.ThrottleReadBpsDevice = []specs_go.LinuxThrottleDevice{} + } + } else { + out.ThrottleReadBpsDevice = (out.ThrottleReadBpsDevice)[:0] + } + for !in.IsDelim(']') { + var v149 specs_go.LinuxThrottleDevice + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo35(in, &v149) + out.ThrottleReadBpsDevice = append(out.ThrottleReadBpsDevice, v149) + in.WantComma() + } + in.Delim(']') + } + case "throttleWriteBpsDevice": + if in.IsNull() { + in.Skip() + out.ThrottleWriteBpsDevice = nil + } else { + in.Delim('[') + if out.ThrottleWriteBpsDevice == nil { + if !in.IsDelim(']') { + out.ThrottleWriteBpsDevice = make([]specs_go.LinuxThrottleDevice, 0, 2) + } else { + out.ThrottleWriteBpsDevice = []specs_go.LinuxThrottleDevice{} + } + } else { + out.ThrottleWriteBpsDevice = (out.ThrottleWriteBpsDevice)[:0] + } + for !in.IsDelim(']') { + var v150 specs_go.LinuxThrottleDevice + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo35(in, &v150) + out.ThrottleWriteBpsDevice = append(out.ThrottleWriteBpsDevice, v150) + in.WantComma() + } + in.Delim(']') + } + case "throttleReadIOPSDevice": + if in.IsNull() { + in.Skip() + out.ThrottleReadIOPSDevice = nil + } else { + in.Delim('[') + if out.ThrottleReadIOPSDevice == nil { + if !in.IsDelim(']') { + out.ThrottleReadIOPSDevice = make([]specs_go.LinuxThrottleDevice, 0, 2) + } else { + out.ThrottleReadIOPSDevice = []specs_go.LinuxThrottleDevice{} + } + } else { + out.ThrottleReadIOPSDevice = (out.ThrottleReadIOPSDevice)[:0] + } + for !in.IsDelim(']') { + var v151 specs_go.LinuxThrottleDevice + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo35(in, &v151) + out.ThrottleReadIOPSDevice = append(out.ThrottleReadIOPSDevice, v151) + in.WantComma() + } + in.Delim(']') + } + case "throttleWriteIOPSDevice": + if in.IsNull() { + in.Skip() + out.ThrottleWriteIOPSDevice = nil + } else { + in.Delim('[') + if out.ThrottleWriteIOPSDevice == nil { + if !in.IsDelim(']') { + out.ThrottleWriteIOPSDevice = make([]specs_go.LinuxThrottleDevice, 0, 2) + } else { + out.ThrottleWriteIOPSDevice = []specs_go.LinuxThrottleDevice{} + } + } else { + out.ThrottleWriteIOPSDevice = (out.ThrottleWriteIOPSDevice)[:0] + } + for !in.IsDelim(']') { + var v152 specs_go.LinuxThrottleDevice + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo35(in, &v152) + out.ThrottleWriteIOPSDevice = append(out.ThrottleWriteIOPSDevice, v152) + in.WantComma() + } + in.Delim(']') + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo30(out *jwriter.Writer, in specs_go.LinuxBlockIO) { + out.RawByte('{') + first := true + _ = first + if in.Weight != nil { + const prefix string = ",\"weight\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint16(uint16(*in.Weight)) + } + if in.LeafWeight != nil { + const prefix string = ",\"leafWeight\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint16(uint16(*in.LeafWeight)) + } + if len(in.WeightDevice) != 0 { + const prefix string = ",\"weightDevice\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v153, v154 := range in.WeightDevice { + if v153 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo34(out, v154) + } + out.RawByte(']') + } + } + if len(in.ThrottleReadBpsDevice) != 0 { + const prefix string = ",\"throttleReadBpsDevice\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v155, v156 := range in.ThrottleReadBpsDevice { + if v155 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo35(out, v156) + } + out.RawByte(']') + } + } + if len(in.ThrottleWriteBpsDevice) != 0 { + const prefix string = ",\"throttleWriteBpsDevice\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v157, v158 := range in.ThrottleWriteBpsDevice { + if v157 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo35(out, v158) + } + out.RawByte(']') + } + } + if len(in.ThrottleReadIOPSDevice) != 0 { + const prefix string = ",\"throttleReadIOPSDevice\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v159, v160 := range in.ThrottleReadIOPSDevice { + if v159 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo35(out, v160) + } + out.RawByte(']') + } + } + if len(in.ThrottleWriteIOPSDevice) != 0 { + const prefix string = ",\"throttleWriteIOPSDevice\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v161, v162 := range in.ThrottleWriteIOPSDevice { + if v161 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo35(out, v162) + } + out.RawByte(']') + } + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo35(in *jlexer.Lexer, out *specs_go.LinuxThrottleDevice) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "rate": + out.Rate = uint64(in.Uint64()) + case "major": + out.Major = int64(in.Int64()) + case "minor": + out.Minor = int64(in.Int64()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo35(out *jwriter.Writer, in specs_go.LinuxThrottleDevice) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"rate\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint64(uint64(in.Rate)) + } + { + const prefix string = ",\"major\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int64(int64(in.Major)) + } + { + const prefix string = ",\"minor\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int64(int64(in.Minor)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo34(in *jlexer.Lexer, out *specs_go.LinuxWeightDevice) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "weight": + if in.IsNull() { + in.Skip() + out.Weight = nil + } else { + if out.Weight == nil { + out.Weight = new(uint16) + } + *out.Weight = uint16(in.Uint16()) + } + case "leafWeight": + if in.IsNull() { + in.Skip() + out.LeafWeight = nil + } else { + if out.LeafWeight == nil { + out.LeafWeight = new(uint16) + } + *out.LeafWeight = uint16(in.Uint16()) + } + case "major": + out.Major = int64(in.Int64()) + case "minor": + out.Minor = int64(in.Int64()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo34(out *jwriter.Writer, in specs_go.LinuxWeightDevice) { + out.RawByte('{') + first := true + _ = first + if in.Weight != nil { + const prefix string = ",\"weight\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint16(uint16(*in.Weight)) + } + if in.LeafWeight != nil { + const prefix string = ",\"leafWeight\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint16(uint16(*in.LeafWeight)) + } + { + const prefix string = ",\"major\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int64(int64(in.Major)) + } + { + const prefix string = ",\"minor\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int64(int64(in.Minor)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo29(in *jlexer.Lexer, out *specs_go.LinuxPids) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "limit": + out.Limit = int64(in.Int64()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo29(out *jwriter.Writer, in specs_go.LinuxPids) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"limit\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int64(int64(in.Limit)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo28(in *jlexer.Lexer, out *specs_go.LinuxCPU) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "shares": + if in.IsNull() { + in.Skip() + out.Shares = nil + } else { + if out.Shares == nil { + out.Shares = new(uint64) + } + *out.Shares = uint64(in.Uint64()) + } + case "quota": + if in.IsNull() { + in.Skip() + out.Quota = nil + } else { + if out.Quota == nil { + out.Quota = new(int64) + } + *out.Quota = int64(in.Int64()) + } + case "period": + if in.IsNull() { + in.Skip() + out.Period = nil + } else { + if out.Period == nil { + out.Period = new(uint64) + } + *out.Period = uint64(in.Uint64()) + } + case "realtimeRuntime": + if in.IsNull() { + in.Skip() + out.RealtimeRuntime = nil + } else { + if out.RealtimeRuntime == nil { + out.RealtimeRuntime = new(int64) + } + *out.RealtimeRuntime = int64(in.Int64()) + } + case "realtimePeriod": + if in.IsNull() { + in.Skip() + out.RealtimePeriod = nil + } else { + if out.RealtimePeriod == nil { + out.RealtimePeriod = new(uint64) + } + *out.RealtimePeriod = uint64(in.Uint64()) + } + case "cpus": + out.Cpus = string(in.String()) + case "mems": + out.Mems = string(in.String()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo28(out *jwriter.Writer, in specs_go.LinuxCPU) { + out.RawByte('{') + first := true + _ = first + if in.Shares != nil { + const prefix string = ",\"shares\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint64(uint64(*in.Shares)) + } + if in.Quota != nil { + const prefix string = ",\"quota\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int64(int64(*in.Quota)) + } + if in.Period != nil { + const prefix string = ",\"period\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint64(uint64(*in.Period)) + } + if in.RealtimeRuntime != nil { + const prefix string = ",\"realtimeRuntime\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int64(int64(*in.RealtimeRuntime)) + } + if in.RealtimePeriod != nil { + const prefix string = ",\"realtimePeriod\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint64(uint64(*in.RealtimePeriod)) + } + if in.Cpus != "" { + const prefix string = ",\"cpus\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Cpus)) + } + if in.Mems != "" { + const prefix string = ",\"mems\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Mems)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo27(in *jlexer.Lexer, out *specs_go.LinuxMemory) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "limit": + if in.IsNull() { + in.Skip() + out.Limit = nil + } else { + if out.Limit == nil { + out.Limit = new(int64) + } + *out.Limit = int64(in.Int64()) + } + case "reservation": + if in.IsNull() { + in.Skip() + out.Reservation = nil + } else { + if out.Reservation == nil { + out.Reservation = new(int64) + } + *out.Reservation = int64(in.Int64()) + } + case "swap": + if in.IsNull() { + in.Skip() + out.Swap = nil + } else { + if out.Swap == nil { + out.Swap = new(int64) + } + *out.Swap = int64(in.Int64()) + } + case "kernel": + if in.IsNull() { + in.Skip() + out.Kernel = nil + } else { + if out.Kernel == nil { + out.Kernel = new(int64) + } + *out.Kernel = int64(in.Int64()) + } + case "kernelTCP": + if in.IsNull() { + in.Skip() + out.KernelTCP = nil + } else { + if out.KernelTCP == nil { + out.KernelTCP = new(int64) + } + *out.KernelTCP = int64(in.Int64()) + } + case "swappiness": + if in.IsNull() { + in.Skip() + out.Swappiness = nil + } else { + if out.Swappiness == nil { + out.Swappiness = new(uint64) + } + *out.Swappiness = uint64(in.Uint64()) + } + case "disableOOMKiller": + if in.IsNull() { + in.Skip() + out.DisableOOMKiller = nil + } else { + if out.DisableOOMKiller == nil { + out.DisableOOMKiller = new(bool) + } + *out.DisableOOMKiller = bool(in.Bool()) + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo27(out *jwriter.Writer, in specs_go.LinuxMemory) { + out.RawByte('{') + first := true + _ = first + if in.Limit != nil { + const prefix string = ",\"limit\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int64(int64(*in.Limit)) + } + if in.Reservation != nil { + const prefix string = ",\"reservation\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int64(int64(*in.Reservation)) + } + if in.Swap != nil { + const prefix string = ",\"swap\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int64(int64(*in.Swap)) + } + if in.Kernel != nil { + const prefix string = ",\"kernel\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int64(int64(*in.Kernel)) + } + if in.KernelTCP != nil { + const prefix string = ",\"kernelTCP\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int64(int64(*in.KernelTCP)) + } + if in.Swappiness != nil { + const prefix string = ",\"swappiness\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint64(uint64(*in.Swappiness)) + } + if in.DisableOOMKiller != nil { + const prefix string = ",\"disableOOMKiller\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Bool(bool(*in.DisableOOMKiller)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo26(in *jlexer.Lexer, out *specs_go.LinuxDeviceCgroup) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "allow": + out.Allow = bool(in.Bool()) + case "type": + out.Type = string(in.String()) + case "major": + if in.IsNull() { + in.Skip() + out.Major = nil + } else { + if out.Major == nil { + out.Major = new(int64) + } + *out.Major = int64(in.Int64()) + } + case "minor": + if in.IsNull() { + in.Skip() + out.Minor = nil + } else { + if out.Minor == nil { + out.Minor = new(int64) + } + *out.Minor = int64(in.Int64()) + } + case "access": + out.Access = string(in.String()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo26(out *jwriter.Writer, in specs_go.LinuxDeviceCgroup) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"allow\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Bool(bool(in.Allow)) + } + if in.Type != "" { + const prefix string = ",\"type\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Type)) + } + if in.Major != nil { + const prefix string = ",\"major\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int64(int64(*in.Major)) + } + if in.Minor != nil { + const prefix string = ",\"minor\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int64(int64(*in.Minor)) + } + if in.Access != "" { + const prefix string = ",\"access\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Access)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo18(in *jlexer.Lexer, out *specs_go.LinuxIDMapping) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "hostID": + out.HostID = uint32(in.Uint32()) + case "containerID": + out.ContainerID = uint32(in.Uint32()) + case "size": + out.Size = uint32(in.Uint32()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo18(out *jwriter.Writer, in specs_go.LinuxIDMapping) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"hostID\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint32(uint32(in.HostID)) + } + { + const prefix string = ",\"containerID\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint32(uint32(in.ContainerID)) + } + { + const prefix string = ",\"size\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint32(uint32(in.Size)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo5(in *jlexer.Lexer, out *specs_go.Hooks) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "prestart": + if in.IsNull() { + in.Skip() + out.Prestart = nil + } else { + in.Delim('[') + if out.Prestart == nil { + if !in.IsDelim(']') { + out.Prestart = make([]specs_go.Hook, 0, 1) + } else { + out.Prestart = []specs_go.Hook{} + } + } else { + out.Prestart = (out.Prestart)[:0] + } + for !in.IsDelim(']') { + var v163 specs_go.Hook + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo(in, &v163) + out.Prestart = append(out.Prestart, v163) + in.WantComma() + } + in.Delim(']') + } + case "poststart": + if in.IsNull() { + in.Skip() + out.Poststart = nil + } else { + in.Delim('[') + if out.Poststart == nil { + if !in.IsDelim(']') { + out.Poststart = make([]specs_go.Hook, 0, 1) + } else { + out.Poststart = []specs_go.Hook{} + } + } else { + out.Poststart = (out.Poststart)[:0] + } + for !in.IsDelim(']') { + var v164 specs_go.Hook + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo(in, &v164) + out.Poststart = append(out.Poststart, v164) + in.WantComma() + } + in.Delim(']') + } + case "poststop": + if in.IsNull() { + in.Skip() + out.Poststop = nil + } else { + in.Delim('[') + if out.Poststop == nil { + if !in.IsDelim(']') { + out.Poststop = make([]specs_go.Hook, 0, 1) + } else { + out.Poststop = []specs_go.Hook{} + } + } else { + out.Poststop = (out.Poststop)[:0] + } + for !in.IsDelim(']') { + var v165 specs_go.Hook + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo(in, &v165) + out.Poststop = append(out.Poststop, v165) + in.WantComma() + } + in.Delim(']') + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo5(out *jwriter.Writer, in specs_go.Hooks) { + out.RawByte('{') + first := true + _ = first + if len(in.Prestart) != 0 { + const prefix string = ",\"prestart\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v166, v167 := range in.Prestart { + if v166 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo(out, v167) + } + out.RawByte(']') + } + } + if len(in.Poststart) != 0 { + const prefix string = ",\"poststart\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v168, v169 := range in.Poststart { + if v168 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo(out, v169) + } + out.RawByte(']') + } + } + if len(in.Poststop) != 0 { + const prefix string = ",\"poststop\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v170, v171 := range in.Poststop { + if v170 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo(out, v171) + } + out.RawByte(']') + } + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo4(in *jlexer.Lexer, out *specs_go.Mount) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "destination": + out.Destination = string(in.String()) + case "type": + out.Type = string(in.String()) + case "source": + out.Source = string(in.String()) + case "options": + if in.IsNull() { + in.Skip() + out.Options = nil + } else { + in.Delim('[') + if out.Options == nil { + if !in.IsDelim(']') { + out.Options = make([]string, 0, 4) + } else { + out.Options = []string{} + } + } else { + out.Options = (out.Options)[:0] + } + for !in.IsDelim(']') { + var v172 string + v172 = string(in.String()) + out.Options = append(out.Options, v172) + in.WantComma() + } + in.Delim(']') + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo4(out *jwriter.Writer, in specs_go.Mount) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"destination\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Destination)) + } + if in.Type != "" { + const prefix string = ",\"type\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Type)) + } + if in.Source != "" { + const prefix string = ",\"source\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Source)) + } + if len(in.Options) != 0 { + const prefix string = ",\"options\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v173, v174 := range in.Options { + if v173 > 0 { + out.RawByte(',') + } + out.String(string(v174)) + } + out.RawByte(']') + } + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo3(in *jlexer.Lexer, out *specs_go.Root) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "path": + out.Path = string(in.String()) + case "readonly": + out.Readonly = bool(in.Bool()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo3(out *jwriter.Writer, in specs_go.Root) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"path\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Path)) + } + if in.Readonly { + const prefix string = ",\"readonly\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Bool(bool(in.Readonly)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo2(in *jlexer.Lexer, out *specs_go.Process) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "terminal": + out.Terminal = bool(in.Bool()) + case "consoleSize": + if in.IsNull() { + in.Skip() + out.ConsoleSize = nil + } else { + if out.ConsoleSize == nil { + out.ConsoleSize = new(specs_go.Box) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo36(in, &*out.ConsoleSize) + } + case "user": + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo37(in, &out.User) + case "args": + if in.IsNull() { + in.Skip() + out.Args = nil + } else { + in.Delim('[') + if out.Args == nil { + if !in.IsDelim(']') { + out.Args = make([]string, 0, 4) + } else { + out.Args = []string{} + } + } else { + out.Args = (out.Args)[:0] + } + for !in.IsDelim(']') { + var v175 string + v175 = string(in.String()) + out.Args = append(out.Args, v175) + in.WantComma() + } + in.Delim(']') + } + case "env": + if in.IsNull() { + in.Skip() + out.Env = nil + } else { + in.Delim('[') + if out.Env == nil { + if !in.IsDelim(']') { + out.Env = make([]string, 0, 4) + } else { + out.Env = []string{} + } + } else { + out.Env = (out.Env)[:0] + } + for !in.IsDelim(']') { + var v176 string + v176 = string(in.String()) + out.Env = append(out.Env, v176) + in.WantComma() + } + in.Delim(']') + } + case "cwd": + out.Cwd = string(in.String()) + case "capabilities": + if in.IsNull() { + in.Skip() + out.Capabilities = nil + } else { + if out.Capabilities == nil { + out.Capabilities = new(specs_go.LinuxCapabilities) + } + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo38(in, &*out.Capabilities) + } + case "rlimits": + if in.IsNull() { + in.Skip() + out.Rlimits = nil + } else { + in.Delim('[') + if out.Rlimits == nil { + if !in.IsDelim(']') { + out.Rlimits = make([]specs_go.POSIXRlimit, 0, 2) + } else { + out.Rlimits = []specs_go.POSIXRlimit{} + } + } else { + out.Rlimits = (out.Rlimits)[:0] + } + for !in.IsDelim(']') { + var v177 specs_go.POSIXRlimit + easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo39(in, &v177) + out.Rlimits = append(out.Rlimits, v177) + in.WantComma() + } + in.Delim(']') + } + case "noNewPrivileges": + out.NoNewPrivileges = bool(in.Bool()) + case "apparmorProfile": + out.ApparmorProfile = string(in.String()) + case "oomScoreAdj": + if in.IsNull() { + in.Skip() + out.OOMScoreAdj = nil + } else { + if out.OOMScoreAdj == nil { + out.OOMScoreAdj = new(int) + } + *out.OOMScoreAdj = int(in.Int()) + } + case "selinuxLabel": + out.SelinuxLabel = string(in.String()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo2(out *jwriter.Writer, in specs_go.Process) { + out.RawByte('{') + first := true + _ = first + if in.Terminal { + const prefix string = ",\"terminal\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Bool(bool(in.Terminal)) + } + if in.ConsoleSize != nil { + const prefix string = ",\"consoleSize\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo36(out, *in.ConsoleSize) + } + { + const prefix string = ",\"user\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo37(out, in.User) + } + { + const prefix string = ",\"args\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + if in.Args == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 { + out.RawString("null") + } else { + out.RawByte('[') + for v178, v179 := range in.Args { + if v178 > 0 { + out.RawByte(',') + } + out.String(string(v179)) + } + out.RawByte(']') + } + } + if len(in.Env) != 0 { + const prefix string = ",\"env\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v180, v181 := range in.Env { + if v180 > 0 { + out.RawByte(',') + } + out.String(string(v181)) + } + out.RawByte(']') + } + } + { + const prefix string = ",\"cwd\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Cwd)) + } + if in.Capabilities != nil { + const prefix string = ",\"capabilities\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo38(out, *in.Capabilities) + } + if len(in.Rlimits) != 0 { + const prefix string = ",\"rlimits\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v182, v183 := range in.Rlimits { + if v182 > 0 { + out.RawByte(',') + } + easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo39(out, v183) + } + out.RawByte(']') + } + } + if in.NoNewPrivileges { + const prefix string = ",\"noNewPrivileges\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Bool(bool(in.NoNewPrivileges)) + } + if in.ApparmorProfile != "" { + const prefix string = ",\"apparmorProfile\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.ApparmorProfile)) + } + if in.OOMScoreAdj != nil { + const prefix string = ",\"oomScoreAdj\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Int(int(*in.OOMScoreAdj)) + } + if in.SelinuxLabel != "" { + const prefix string = ",\"selinuxLabel\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.SelinuxLabel)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo39(in *jlexer.Lexer, out *specs_go.POSIXRlimit) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "type": + out.Type = string(in.String()) + case "hard": + out.Hard = uint64(in.Uint64()) + case "soft": + out.Soft = uint64(in.Uint64()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo39(out *jwriter.Writer, in specs_go.POSIXRlimit) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"type\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Type)) + } + { + const prefix string = ",\"hard\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint64(uint64(in.Hard)) + } + { + const prefix string = ",\"soft\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint64(uint64(in.Soft)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo38(in *jlexer.Lexer, out *specs_go.LinuxCapabilities) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "bounding": + if in.IsNull() { + in.Skip() + out.Bounding = nil + } else { + in.Delim('[') + if out.Bounding == nil { + if !in.IsDelim(']') { + out.Bounding = make([]string, 0, 4) + } else { + out.Bounding = []string{} + } + } else { + out.Bounding = (out.Bounding)[:0] + } + for !in.IsDelim(']') { + var v184 string + v184 = string(in.String()) + out.Bounding = append(out.Bounding, v184) + in.WantComma() + } + in.Delim(']') + } + case "effective": + if in.IsNull() { + in.Skip() + out.Effective = nil + } else { + in.Delim('[') + if out.Effective == nil { + if !in.IsDelim(']') { + out.Effective = make([]string, 0, 4) + } else { + out.Effective = []string{} + } + } else { + out.Effective = (out.Effective)[:0] + } + for !in.IsDelim(']') { + var v185 string + v185 = string(in.String()) + out.Effective = append(out.Effective, v185) + in.WantComma() + } + in.Delim(']') + } + case "inheritable": + if in.IsNull() { + in.Skip() + out.Inheritable = nil + } else { + in.Delim('[') + if out.Inheritable == nil { + if !in.IsDelim(']') { + out.Inheritable = make([]string, 0, 4) + } else { + out.Inheritable = []string{} + } + } else { + out.Inheritable = (out.Inheritable)[:0] + } + for !in.IsDelim(']') { + var v186 string + v186 = string(in.String()) + out.Inheritable = append(out.Inheritable, v186) + in.WantComma() + } + in.Delim(']') + } + case "permitted": + if in.IsNull() { + in.Skip() + out.Permitted = nil + } else { + in.Delim('[') + if out.Permitted == nil { + if !in.IsDelim(']') { + out.Permitted = make([]string, 0, 4) + } else { + out.Permitted = []string{} + } + } else { + out.Permitted = (out.Permitted)[:0] + } + for !in.IsDelim(']') { + var v187 string + v187 = string(in.String()) + out.Permitted = append(out.Permitted, v187) + in.WantComma() + } + in.Delim(']') + } + case "ambient": + if in.IsNull() { + in.Skip() + out.Ambient = nil + } else { + in.Delim('[') + if out.Ambient == nil { + if !in.IsDelim(']') { + out.Ambient = make([]string, 0, 4) + } else { + out.Ambient = []string{} + } + } else { + out.Ambient = (out.Ambient)[:0] + } + for !in.IsDelim(']') { + var v188 string + v188 = string(in.String()) + out.Ambient = append(out.Ambient, v188) + in.WantComma() + } + in.Delim(']') + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo38(out *jwriter.Writer, in specs_go.LinuxCapabilities) { + out.RawByte('{') + first := true + _ = first + if len(in.Bounding) != 0 { + const prefix string = ",\"bounding\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v189, v190 := range in.Bounding { + if v189 > 0 { + out.RawByte(',') + } + out.String(string(v190)) + } + out.RawByte(']') + } + } + if len(in.Effective) != 0 { + const prefix string = ",\"effective\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v191, v192 := range in.Effective { + if v191 > 0 { + out.RawByte(',') + } + out.String(string(v192)) + } + out.RawByte(']') + } + } + if len(in.Inheritable) != 0 { + const prefix string = ",\"inheritable\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v193, v194 := range in.Inheritable { + if v193 > 0 { + out.RawByte(',') + } + out.String(string(v194)) + } + out.RawByte(']') + } + } + if len(in.Permitted) != 0 { + const prefix string = ",\"permitted\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v195, v196 := range in.Permitted { + if v195 > 0 { + out.RawByte(',') + } + out.String(string(v196)) + } + out.RawByte(']') + } + } + if len(in.Ambient) != 0 { + const prefix string = ",\"ambient\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v197, v198 := range in.Ambient { + if v197 > 0 { + out.RawByte(',') + } + out.String(string(v198)) + } + out.RawByte(']') + } + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo37(in *jlexer.Lexer, out *specs_go.User) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "uid": + out.UID = uint32(in.Uint32()) + case "gid": + out.GID = uint32(in.Uint32()) + case "additionalGids": + if in.IsNull() { + in.Skip() + out.AdditionalGids = nil + } else { + in.Delim('[') + if out.AdditionalGids == nil { + if !in.IsDelim(']') { + out.AdditionalGids = make([]uint32, 0, 16) + } else { + out.AdditionalGids = []uint32{} + } + } else { + out.AdditionalGids = (out.AdditionalGids)[:0] + } + for !in.IsDelim(']') { + var v199 uint32 + v199 = uint32(in.Uint32()) + out.AdditionalGids = append(out.AdditionalGids, v199) + in.WantComma() + } + in.Delim(']') + } + case "username": + out.Username = string(in.String()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo37(out *jwriter.Writer, in specs_go.User) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"uid\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint32(uint32(in.UID)) + } + { + const prefix string = ",\"gid\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint32(uint32(in.GID)) + } + if len(in.AdditionalGids) != 0 { + const prefix string = ",\"additionalGids\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + { + out.RawByte('[') + for v200, v201 := range in.AdditionalGids { + if v200 > 0 { + out.RawByte(',') + } + out.Uint32(uint32(v201)) + } + out.RawByte(']') + } + } + if in.Username != "" { + const prefix string = ",\"username\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Username)) + } + out.RawByte('}') +} +func easyjson1dbef17bDecodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo36(in *jlexer.Lexer, out *specs_go.Box) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "height": + out.Height = uint(in.Uint()) + case "width": + out.Width = uint(in.Uint()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson1dbef17bEncodeGithubComContainersLibpodVendorGithubComOpencontainersRuntimeSpecSpecsGo36(out *jwriter.Writer, in specs_go.Box) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"height\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint(uint(in.Height)) + } + { + const prefix string = ",\"width\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Uint(uint(in.Width)) + } + out.RawByte('}') +} diff --git a/libpod/container_ffjson.go b/libpod/container_ffjson.go deleted file mode 100644 index 22d6ed2a9..000000000 --- a/libpod/container_ffjson.go +++ /dev/null @@ -1,5454 +0,0 @@ -// Code generated by ffjson <https://github.com/pquerna/ffjson>. DO NOT EDIT. -// source: /home/pehunt/go/src/github.com/containers/libpod/libpod/container.go - -package libpod - -import ( - "bytes" - "encoding/base64" - "encoding/json" - "errors" - "fmt" - "github.com/containernetworking/cni/pkg/types/current" - "github.com/cri-o/ocicni/pkg/ocicni" - "github.com/opencontainers/runtime-spec/specs-go" - fflib "github.com/pquerna/ffjson/fflib/v1" - "net" - "reflect" -) - -// MarshalJSON marshal bytes to json - template -func (j *ContainerConfig) MarshalJSON() ([]byte, error) { - var buf fflib.Buffer - if j == nil { - buf.WriteString("null") - return buf.Bytes(), nil - } - err := j.MarshalJSONBuf(&buf) - if err != nil { - return nil, err - } - return buf.Bytes(), nil -} - -// MarshalJSONBuf marshal buff to json - template -func (j *ContainerConfig) MarshalJSONBuf(buf fflib.EncodingBuffer) error { - if j == nil { - buf.WriteString("null") - return nil - } - var err error - var obj []byte - _ = obj - _ = err - if j.Spec != nil { - /* Struct fall back. type=specs.Spec kind=struct */ - buf.WriteString(`{"spec":`) - err = buf.Encode(j.Spec) - if err != nil { - return err - } - } else { - buf.WriteString(`{"spec":null`) - } - buf.WriteString(`,"id":`) - fflib.WriteJsonString(buf, string(j.ID)) - buf.WriteString(`,"name":`) - fflib.WriteJsonString(buf, string(j.Name)) - buf.WriteByte(',') - if len(j.Pod) != 0 { - buf.WriteString(`"pod":`) - fflib.WriteJsonString(buf, string(j.Pod)) - buf.WriteByte(',') - } - if len(j.Namespace) != 0 { - buf.WriteString(`"namespace":`) - fflib.WriteJsonString(buf, string(j.Namespace)) - buf.WriteByte(',') - } - if true { - /* Struct fall back. type=storage.IDMappingOptions kind=struct */ - buf.WriteString(`"idMappingsOptions":`) - err = buf.Encode(&j.IDMappings) - if err != nil { - return err - } - buf.WriteByte(',') - } - if len(j.RootfsImageID) != 0 { - buf.WriteString(`"rootfsImageID":`) - fflib.WriteJsonString(buf, string(j.RootfsImageID)) - buf.WriteByte(',') - } - if len(j.RootfsImageName) != 0 { - buf.WriteString(`"rootfsImageName":`) - fflib.WriteJsonString(buf, string(j.RootfsImageName)) - buf.WriteByte(',') - } - if len(j.Rootfs) != 0 { - buf.WriteString(`"rootfs":`) - fflib.WriteJsonString(buf, string(j.Rootfs)) - buf.WriteByte(',') - } - if j.ImageVolumes { - buf.WriteString(`"imageVolumes":true`) - } else { - buf.WriteString(`"imageVolumes":false`) - } - buf.WriteByte(',') - if len(j.ShmDir) != 0 { - buf.WriteString(`"ShmDir":`) - fflib.WriteJsonString(buf, string(j.ShmDir)) - buf.WriteByte(',') - } - buf.WriteString(`"shmSize":`) - fflib.FormatBits2(buf, uint64(j.ShmSize), 10, j.ShmSize < 0) - buf.WriteString(`,"staticDir":`) - fflib.WriteJsonString(buf, string(j.StaticDir)) - buf.WriteByte(',') - if len(j.Mounts) != 0 { - buf.WriteString(`"mounts":`) - if j.Mounts != nil { - buf.WriteString(`[`) - for i, v := range j.Mounts { - if i != 0 { - buf.WriteString(`,`) - } - fflib.WriteJsonString(buf, string(v)) - } - buf.WriteString(`]`) - } else { - buf.WriteString(`null`) - } - buf.WriteByte(',') - } - if j.Privileged { - buf.WriteString(`"privileged":true`) - } else { - buf.WriteString(`"privileged":false`) - } - buf.WriteByte(',') - if len(j.ProcessLabel) != 0 { - buf.WriteString(`"ProcessLabel":`) - fflib.WriteJsonString(buf, string(j.ProcessLabel)) - buf.WriteByte(',') - } - if len(j.MountLabel) != 0 { - buf.WriteString(`"MountLabel":`) - fflib.WriteJsonString(buf, string(j.MountLabel)) - buf.WriteByte(',') - } - if len(j.User) != 0 { - buf.WriteString(`"user":`) - fflib.WriteJsonString(buf, string(j.User)) - buf.WriteByte(',') - } - if len(j.Groups) != 0 { - buf.WriteString(`"groups":`) - if j.Groups != nil { - buf.WriteString(`[`) - for i, v := range j.Groups { - if i != 0 { - buf.WriteString(`,`) - } - fflib.WriteJsonString(buf, string(v)) - } - buf.WriteString(`]`) - } else { - buf.WriteString(`null`) - } - buf.WriteByte(',') - } - if len(j.IPCNsCtr) != 0 { - buf.WriteString(`"ipcNsCtr":`) - fflib.WriteJsonString(buf, string(j.IPCNsCtr)) - buf.WriteByte(',') - } - if len(j.MountNsCtr) != 0 { - buf.WriteString(`"mountNsCtr":`) - fflib.WriteJsonString(buf, string(j.MountNsCtr)) - buf.WriteByte(',') - } - if len(j.NetNsCtr) != 0 { - buf.WriteString(`"netNsCtr":`) - fflib.WriteJsonString(buf, string(j.NetNsCtr)) - buf.WriteByte(',') - } - if len(j.PIDNsCtr) != 0 { - buf.WriteString(`"pidNsCtr":`) - fflib.WriteJsonString(buf, string(j.PIDNsCtr)) - buf.WriteByte(',') - } - if len(j.UserNsCtr) != 0 { - buf.WriteString(`"userNsCtr":`) - fflib.WriteJsonString(buf, string(j.UserNsCtr)) - buf.WriteByte(',') - } - if len(j.UTSNsCtr) != 0 { - buf.WriteString(`"utsNsCtr":`) - fflib.WriteJsonString(buf, string(j.UTSNsCtr)) - buf.WriteByte(',') - } - if len(j.CgroupNsCtr) != 0 { - buf.WriteString(`"cgroupNsCtr":`) - fflib.WriteJsonString(buf, string(j.CgroupNsCtr)) - buf.WriteByte(',') - } - buf.WriteString(`"Dependencies":`) - if j.Dependencies != nil { - buf.WriteString(`[`) - for i, v := range j.Dependencies { - if i != 0 { - buf.WriteString(`,`) - } - fflib.WriteJsonString(buf, string(v)) - } - buf.WriteString(`]`) - } else { - buf.WriteString(`null`) - } - if j.CreateNetNS { - buf.WriteString(`,"createNetNS":true`) - } else { - buf.WriteString(`,"createNetNS":false`) - } - buf.WriteByte(',') - if len(j.PortMappings) != 0 { - buf.WriteString(`"portMappings":`) - if j.PortMappings != nil { - buf.WriteString(`[`) - for i, v := range j.PortMappings { - if i != 0 { - buf.WriteString(`,`) - } - /* Struct fall back. type=ocicni.PortMapping kind=struct */ - err = buf.Encode(&v) - if err != nil { - return err - } - } - buf.WriteString(`]`) - } else { - buf.WriteString(`null`) - } - buf.WriteByte(',') - } - if len(j.DNSServer) != 0 { - buf.WriteString(`"dnsServer":`) - if j.DNSServer != nil { - buf.WriteString(`[`) - for i, v := range j.DNSServer { - if i != 0 { - buf.WriteString(`,`) - } - if v != nil { - buf.WriteString(`"`) - { - enc := base64.NewEncoder(base64.StdEncoding, buf) - enc.Write(reflect.Indirect(reflect.ValueOf(v)).Bytes()) - enc.Close() - } - buf.WriteString(`"`) - } else { - buf.WriteString(`null`) - } - } - buf.WriteString(`]`) - } else { - buf.WriteString(`null`) - } - buf.WriteByte(',') - } - if len(j.DNSSearch) != 0 { - buf.WriteString(`"dnsSearch":`) - if j.DNSSearch != nil { - buf.WriteString(`[`) - for i, v := range j.DNSSearch { - if i != 0 { - buf.WriteString(`,`) - } - fflib.WriteJsonString(buf, string(v)) - } - buf.WriteString(`]`) - } else { - buf.WriteString(`null`) - } - buf.WriteByte(',') - } - if len(j.DNSOption) != 0 { - buf.WriteString(`"dnsOption":`) - if j.DNSOption != nil { - buf.WriteString(`[`) - for i, v := range j.DNSOption { - if i != 0 { - buf.WriteString(`,`) - } - fflib.WriteJsonString(buf, string(v)) - } - buf.WriteString(`]`) - } else { - buf.WriteString(`null`) - } - buf.WriteByte(',') - } - if len(j.HostAdd) != 0 { - buf.WriteString(`"hostsAdd":`) - if j.HostAdd != nil { - buf.WriteString(`[`) - for i, v := range j.HostAdd { - if i != 0 { - buf.WriteString(`,`) - } - fflib.WriteJsonString(buf, string(v)) - } - buf.WriteString(`]`) - } else { - buf.WriteString(`null`) - } - buf.WriteByte(',') - } - if len(j.Networks) != 0 { - buf.WriteString(`"networks":`) - if j.Networks != nil { - buf.WriteString(`[`) - for i, v := range j.Networks { - if i != 0 { - buf.WriteString(`,`) - } - fflib.WriteJsonString(buf, string(v)) - } - buf.WriteString(`]`) - } else { - buf.WriteString(`null`) - } - buf.WriteByte(',') - } - if len(j.UserVolumes) != 0 { - buf.WriteString(`"userVolumes":`) - if j.UserVolumes != nil { - buf.WriteString(`[`) - for i, v := range j.UserVolumes { - if i != 0 { - buf.WriteString(`,`) - } - fflib.WriteJsonString(buf, string(v)) - } - buf.WriteString(`]`) - } else { - buf.WriteString(`null`) - } - buf.WriteByte(',') - } - if len(j.Entrypoint) != 0 { - buf.WriteString(`"entrypoint":`) - if j.Entrypoint != nil { - buf.WriteString(`[`) - for i, v := range j.Entrypoint { - if i != 0 { - buf.WriteString(`,`) - } - fflib.WriteJsonString(buf, string(v)) - } - buf.WriteString(`]`) - } else { - buf.WriteString(`null`) - } - buf.WriteByte(',') - } - if len(j.Command) != 0 { - buf.WriteString(`"command":`) - if j.Command != nil { - buf.WriteString(`[`) - for i, v := range j.Command { - if i != 0 { - buf.WriteString(`,`) - } - fflib.WriteJsonString(buf, string(v)) - } - buf.WriteString(`]`) - } else { - buf.WriteString(`null`) - } - buf.WriteByte(',') - } - if j.Stdin != false { - if j.Stdin { - buf.WriteString(`"stdin":true`) - } else { - buf.WriteString(`"stdin":false`) - } - buf.WriteByte(',') - } - if len(j.Labels) != 0 { - if j.Labels == nil { - buf.WriteString(`"labels":null`) - } else { - buf.WriteString(`"labels":{ `) - for key, value := range j.Labels { - fflib.WriteJsonString(buf, key) - buf.WriteString(`:`) - fflib.WriteJsonString(buf, string(value)) - buf.WriteByte(',') - } - buf.Rewind(1) - buf.WriteByte('}') - } - buf.WriteByte(',') - } - if j.StopSignal != 0 { - buf.WriteString(`"stopSignal":`) - fflib.FormatBits2(buf, uint64(j.StopSignal), 10, false) - buf.WriteByte(',') - } - if j.StopTimeout != 0 { - buf.WriteString(`"stopTimeout":`) - fflib.FormatBits2(buf, uint64(j.StopTimeout), 10, false) - buf.WriteByte(',') - } - buf.WriteString(`"createdTime":`) - - { - - obj, err = j.CreatedTime.MarshalJSON() - if err != nil { - return err - } - buf.Write(obj) - - } - buf.WriteString(`,"cgroupParent":`) - fflib.WriteJsonString(buf, string(j.CgroupParent)) - buf.WriteString(`,"logPath":`) - fflib.WriteJsonString(buf, string(j.LogPath)) - buf.WriteByte(',') - if len(j.ConmonPidFile) != 0 { - buf.WriteString(`"conmonPidFile":`) - fflib.WriteJsonString(buf, string(j.ConmonPidFile)) - buf.WriteByte(',') - } - if j.PostConfigureNetNS { - buf.WriteString(`"postConfigureNetNS":true`) - } else { - buf.WriteString(`"postConfigureNetNS":false`) - } - buf.WriteByte(',') - if len(j.ExitCommand) != 0 { - buf.WriteString(`"exitCommand":`) - if j.ExitCommand != nil { - buf.WriteString(`[`) - for i, v := range j.ExitCommand { - if i != 0 { - buf.WriteString(`,`) - } - fflib.WriteJsonString(buf, string(v)) - } - buf.WriteString(`]`) - } else { - buf.WriteString(`null`) - } - buf.WriteByte(',') - } - buf.WriteString(`"LocalVolumes":`) - if j.LocalVolumes != nil { - buf.WriteString(`[`) - for i, v := range j.LocalVolumes { - if i != 0 { - buf.WriteString(`,`) - } - fflib.WriteJsonString(buf, string(v)) - } - buf.WriteString(`]`) - } else { - buf.WriteString(`null`) - } - if j.IsInfra { - buf.WriteString(`,"pause":true`) - } else { - buf.WriteString(`,"pause":false`) - } - buf.WriteByte('}') - return nil -} - -const ( - ffjtContainerConfigbase = iota - ffjtContainerConfignosuchkey - - ffjtContainerConfigSpec - - ffjtContainerConfigID - - ffjtContainerConfigName - - ffjtContainerConfigPod - - ffjtContainerConfigNamespace - - ffjtContainerConfigIDMappings - - ffjtContainerConfigRootfsImageID - - ffjtContainerConfigRootfsImageName - - ffjtContainerConfigRootfs - - ffjtContainerConfigImageVolumes - - ffjtContainerConfigShmDir - - ffjtContainerConfigShmSize - - ffjtContainerConfigStaticDir - - ffjtContainerConfigMounts - - ffjtContainerConfigPrivileged - - ffjtContainerConfigProcessLabel - - ffjtContainerConfigMountLabel - - ffjtContainerConfigUser - - ffjtContainerConfigGroups - - ffjtContainerConfigIPCNsCtr - - ffjtContainerConfigMountNsCtr - - ffjtContainerConfigNetNsCtr - - ffjtContainerConfigPIDNsCtr - - ffjtContainerConfigUserNsCtr - - ffjtContainerConfigUTSNsCtr - - ffjtContainerConfigCgroupNsCtr - - ffjtContainerConfigDependencies - - ffjtContainerConfigCreateNetNS - - ffjtContainerConfigPortMappings - - ffjtContainerConfigDNSServer - - ffjtContainerConfigDNSSearch - - ffjtContainerConfigDNSOption - - ffjtContainerConfigHostAdd - - ffjtContainerConfigNetworks - - ffjtContainerConfigUserVolumes - - ffjtContainerConfigEntrypoint - - ffjtContainerConfigCommand - - ffjtContainerConfigStdin - - ffjtContainerConfigLabels - - ffjtContainerConfigStopSignal - - ffjtContainerConfigStopTimeout - - ffjtContainerConfigCreatedTime - - ffjtContainerConfigCgroupParent - - ffjtContainerConfigLogPath - - ffjtContainerConfigConmonPidFile - - ffjtContainerConfigPostConfigureNetNS - - ffjtContainerConfigExitCommand - - ffjtContainerConfigLocalVolumes - - ffjtContainerConfigIsInfra -) - -var ffjKeyContainerConfigSpec = []byte("spec") - -var ffjKeyContainerConfigID = []byte("id") - -var ffjKeyContainerConfigName = []byte("name") - -var ffjKeyContainerConfigPod = []byte("pod") - -var ffjKeyContainerConfigNamespace = []byte("namespace") - -var ffjKeyContainerConfigIDMappings = []byte("idMappingsOptions") - -var ffjKeyContainerConfigRootfsImageID = []byte("rootfsImageID") - -var ffjKeyContainerConfigRootfsImageName = []byte("rootfsImageName") - -var ffjKeyContainerConfigRootfs = []byte("rootfs") - -var ffjKeyContainerConfigImageVolumes = []byte("imageVolumes") - -var ffjKeyContainerConfigShmDir = []byte("ShmDir") - -var ffjKeyContainerConfigShmSize = []byte("shmSize") - -var ffjKeyContainerConfigStaticDir = []byte("staticDir") - -var ffjKeyContainerConfigMounts = []byte("mounts") - -var ffjKeyContainerConfigPrivileged = []byte("privileged") - -var ffjKeyContainerConfigProcessLabel = []byte("ProcessLabel") - -var ffjKeyContainerConfigMountLabel = []byte("MountLabel") - -var ffjKeyContainerConfigUser = []byte("user") - -var ffjKeyContainerConfigGroups = []byte("groups") - -var ffjKeyContainerConfigIPCNsCtr = []byte("ipcNsCtr") - -var ffjKeyContainerConfigMountNsCtr = []byte("mountNsCtr") - -var ffjKeyContainerConfigNetNsCtr = []byte("netNsCtr") - -var ffjKeyContainerConfigPIDNsCtr = []byte("pidNsCtr") - -var ffjKeyContainerConfigUserNsCtr = []byte("userNsCtr") - -var ffjKeyContainerConfigUTSNsCtr = []byte("utsNsCtr") - -var ffjKeyContainerConfigCgroupNsCtr = []byte("cgroupNsCtr") - -var ffjKeyContainerConfigDependencies = []byte("Dependencies") - -var ffjKeyContainerConfigCreateNetNS = []byte("createNetNS") - -var ffjKeyContainerConfigPortMappings = []byte("portMappings") - -var ffjKeyContainerConfigDNSServer = []byte("dnsServer") - -var ffjKeyContainerConfigDNSSearch = []byte("dnsSearch") - -var ffjKeyContainerConfigDNSOption = []byte("dnsOption") - -var ffjKeyContainerConfigHostAdd = []byte("hostsAdd") - -var ffjKeyContainerConfigNetworks = []byte("networks") - -var ffjKeyContainerConfigUserVolumes = []byte("userVolumes") - -var ffjKeyContainerConfigEntrypoint = []byte("entrypoint") - -var ffjKeyContainerConfigCommand = []byte("command") - -var ffjKeyContainerConfigStdin = []byte("stdin") - -var ffjKeyContainerConfigLabels = []byte("labels") - -var ffjKeyContainerConfigStopSignal = []byte("stopSignal") - -var ffjKeyContainerConfigStopTimeout = []byte("stopTimeout") - -var ffjKeyContainerConfigCreatedTime = []byte("createdTime") - -var ffjKeyContainerConfigCgroupParent = []byte("cgroupParent") - -var ffjKeyContainerConfigLogPath = []byte("logPath") - -var ffjKeyContainerConfigConmonPidFile = []byte("conmonPidFile") - -var ffjKeyContainerConfigPostConfigureNetNS = []byte("postConfigureNetNS") - -var ffjKeyContainerConfigExitCommand = []byte("exitCommand") - -var ffjKeyContainerConfigLocalVolumes = []byte("LocalVolumes") - -var ffjKeyContainerConfigIsInfra = []byte("pause") - -// UnmarshalJSON umarshall json - template of ffjson -func (j *ContainerConfig) UnmarshalJSON(input []byte) error { - fs := fflib.NewFFLexer(input) - return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) -} - -// UnmarshalJSONFFLexer fast json unmarshall - template ffjson -func (j *ContainerConfig) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { - var err error - currentKey := ffjtContainerConfigbase - _ = currentKey - tok := fflib.FFTok_init - wantedTok := fflib.FFTok_init - -mainparse: - for { - tok = fs.Scan() - // println(fmt.Sprintf("debug: tok: %v state: %v", tok, state)) - if tok == fflib.FFTok_error { - goto tokerror - } - - switch state { - - case fflib.FFParse_map_start: - if tok != fflib.FFTok_left_bracket { - wantedTok = fflib.FFTok_left_bracket - goto wrongtokenerror - } - state = fflib.FFParse_want_key - continue - - case fflib.FFParse_after_value: - if tok == fflib.FFTok_comma { - state = fflib.FFParse_want_key - } else if tok == fflib.FFTok_right_bracket { - goto done - } else { - wantedTok = fflib.FFTok_comma - goto wrongtokenerror - } - - case fflib.FFParse_want_key: - // json {} ended. goto exit. woo. - if tok == fflib.FFTok_right_bracket { - goto done - } - if tok != fflib.FFTok_string { - wantedTok = fflib.FFTok_string - goto wrongtokenerror - } - - kn := fs.Output.Bytes() - if len(kn) <= 0 { - // "" case. hrm. - currentKey = ffjtContainerConfignosuchkey - state = fflib.FFParse_want_colon - goto mainparse - } else { - switch kn[0] { - - case 'D': - - if bytes.Equal(ffjKeyContainerConfigDependencies, kn) { - currentKey = ffjtContainerConfigDependencies - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'L': - - if bytes.Equal(ffjKeyContainerConfigLocalVolumes, kn) { - currentKey = ffjtContainerConfigLocalVolumes - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'M': - - if bytes.Equal(ffjKeyContainerConfigMountLabel, kn) { - currentKey = ffjtContainerConfigMountLabel - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'P': - - if bytes.Equal(ffjKeyContainerConfigProcessLabel, kn) { - currentKey = ffjtContainerConfigProcessLabel - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'S': - - if bytes.Equal(ffjKeyContainerConfigShmDir, kn) { - currentKey = ffjtContainerConfigShmDir - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'c': - - if bytes.Equal(ffjKeyContainerConfigCgroupNsCtr, kn) { - currentKey = ffjtContainerConfigCgroupNsCtr - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigCreateNetNS, kn) { - currentKey = ffjtContainerConfigCreateNetNS - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigCommand, kn) { - currentKey = ffjtContainerConfigCommand - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigCreatedTime, kn) { - currentKey = ffjtContainerConfigCreatedTime - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigCgroupParent, kn) { - currentKey = ffjtContainerConfigCgroupParent - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigConmonPidFile, kn) { - currentKey = ffjtContainerConfigConmonPidFile - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'd': - - if bytes.Equal(ffjKeyContainerConfigDNSServer, kn) { - currentKey = ffjtContainerConfigDNSServer - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigDNSSearch, kn) { - currentKey = ffjtContainerConfigDNSSearch - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigDNSOption, kn) { - currentKey = ffjtContainerConfigDNSOption - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'e': - - if bytes.Equal(ffjKeyContainerConfigEntrypoint, kn) { - currentKey = ffjtContainerConfigEntrypoint - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigExitCommand, kn) { - currentKey = ffjtContainerConfigExitCommand - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'g': - - if bytes.Equal(ffjKeyContainerConfigGroups, kn) { - currentKey = ffjtContainerConfigGroups - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'h': - - if bytes.Equal(ffjKeyContainerConfigHostAdd, kn) { - currentKey = ffjtContainerConfigHostAdd - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'i': - - if bytes.Equal(ffjKeyContainerConfigID, kn) { - currentKey = ffjtContainerConfigID - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigIDMappings, kn) { - currentKey = ffjtContainerConfigIDMappings - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigImageVolumes, kn) { - currentKey = ffjtContainerConfigImageVolumes - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigIPCNsCtr, kn) { - currentKey = ffjtContainerConfigIPCNsCtr - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'l': - - if bytes.Equal(ffjKeyContainerConfigLabels, kn) { - currentKey = ffjtContainerConfigLabels - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigLogPath, kn) { - currentKey = ffjtContainerConfigLogPath - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'm': - - if bytes.Equal(ffjKeyContainerConfigMounts, kn) { - currentKey = ffjtContainerConfigMounts - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigMountNsCtr, kn) { - currentKey = ffjtContainerConfigMountNsCtr - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'n': - - if bytes.Equal(ffjKeyContainerConfigName, kn) { - currentKey = ffjtContainerConfigName - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigNamespace, kn) { - currentKey = ffjtContainerConfigNamespace - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigNetNsCtr, kn) { - currentKey = ffjtContainerConfigNetNsCtr - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigNetworks, kn) { - currentKey = ffjtContainerConfigNetworks - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'p': - - if bytes.Equal(ffjKeyContainerConfigPod, kn) { - currentKey = ffjtContainerConfigPod - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigPrivileged, kn) { - currentKey = ffjtContainerConfigPrivileged - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigPIDNsCtr, kn) { - currentKey = ffjtContainerConfigPIDNsCtr - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigPortMappings, kn) { - currentKey = ffjtContainerConfigPortMappings - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigPostConfigureNetNS, kn) { - currentKey = ffjtContainerConfigPostConfigureNetNS - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigIsInfra, kn) { - currentKey = ffjtContainerConfigIsInfra - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'r': - - if bytes.Equal(ffjKeyContainerConfigRootfsImageID, kn) { - currentKey = ffjtContainerConfigRootfsImageID - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigRootfsImageName, kn) { - currentKey = ffjtContainerConfigRootfsImageName - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigRootfs, kn) { - currentKey = ffjtContainerConfigRootfs - state = fflib.FFParse_want_colon - goto mainparse - } - - case 's': - - if bytes.Equal(ffjKeyContainerConfigSpec, kn) { - currentKey = ffjtContainerConfigSpec - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigShmSize, kn) { - currentKey = ffjtContainerConfigShmSize - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigStaticDir, kn) { - currentKey = ffjtContainerConfigStaticDir - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigStdin, kn) { - currentKey = ffjtContainerConfigStdin - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigStopSignal, kn) { - currentKey = ffjtContainerConfigStopSignal - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigStopTimeout, kn) { - currentKey = ffjtContainerConfigStopTimeout - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'u': - - if bytes.Equal(ffjKeyContainerConfigUser, kn) { - currentKey = ffjtContainerConfigUser - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigUserNsCtr, kn) { - currentKey = ffjtContainerConfigUserNsCtr - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigUTSNsCtr, kn) { - currentKey = ffjtContainerConfigUTSNsCtr - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyContainerConfigUserVolumes, kn) { - currentKey = ffjtContainerConfigUserVolumes - state = fflib.FFParse_want_colon - goto mainparse - } - - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigIsInfra, kn) { - currentKey = ffjtContainerConfigIsInfra - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigLocalVolumes, kn) { - currentKey = ffjtContainerConfigLocalVolumes - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyContainerConfigExitCommand, kn) { - currentKey = ffjtContainerConfigExitCommand - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigPostConfigureNetNS, kn) { - currentKey = ffjtContainerConfigPostConfigureNetNS - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyContainerConfigConmonPidFile, kn) { - currentKey = ffjtContainerConfigConmonPidFile - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyContainerConfigLogPath, kn) { - currentKey = ffjtContainerConfigLogPath - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyContainerConfigCgroupParent, kn) { - currentKey = ffjtContainerConfigCgroupParent - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyContainerConfigCreatedTime, kn) { - currentKey = ffjtContainerConfigCreatedTime - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigStopTimeout, kn) { - currentKey = ffjtContainerConfigStopTimeout - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigStopSignal, kn) { - currentKey = ffjtContainerConfigStopSignal - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigLabels, kn) { - currentKey = ffjtContainerConfigLabels - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigStdin, kn) { - currentKey = ffjtContainerConfigStdin - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyContainerConfigCommand, kn) { - currentKey = ffjtContainerConfigCommand - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyContainerConfigEntrypoint, kn) { - currentKey = ffjtContainerConfigEntrypoint - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigUserVolumes, kn) { - currentKey = ffjtContainerConfigUserVolumes - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigNetworks, kn) { - currentKey = ffjtContainerConfigNetworks - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigHostAdd, kn) { - currentKey = ffjtContainerConfigHostAdd - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigDNSOption, kn) { - currentKey = ffjtContainerConfigDNSOption - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigDNSSearch, kn) { - currentKey = ffjtContainerConfigDNSSearch - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigDNSServer, kn) { - currentKey = ffjtContainerConfigDNSServer - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigPortMappings, kn) { - currentKey = ffjtContainerConfigPortMappings - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigCreateNetNS, kn) { - currentKey = ffjtContainerConfigCreateNetNS - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigDependencies, kn) { - currentKey = ffjtContainerConfigDependencies - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigCgroupNsCtr, kn) { - currentKey = ffjtContainerConfigCgroupNsCtr - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigUTSNsCtr, kn) { - currentKey = ffjtContainerConfigUTSNsCtr - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigUserNsCtr, kn) { - currentKey = ffjtContainerConfigUserNsCtr - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigPIDNsCtr, kn) { - currentKey = ffjtContainerConfigPIDNsCtr - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigNetNsCtr, kn) { - currentKey = ffjtContainerConfigNetNsCtr - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigMountNsCtr, kn) { - currentKey = ffjtContainerConfigMountNsCtr - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigIPCNsCtr, kn) { - currentKey = ffjtContainerConfigIPCNsCtr - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigGroups, kn) { - currentKey = ffjtContainerConfigGroups - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigUser, kn) { - currentKey = ffjtContainerConfigUser - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyContainerConfigMountLabel, kn) { - currentKey = ffjtContainerConfigMountLabel - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigProcessLabel, kn) { - currentKey = ffjtContainerConfigProcessLabel - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyContainerConfigPrivileged, kn) { - currentKey = ffjtContainerConfigPrivileged - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigMounts, kn) { - currentKey = ffjtContainerConfigMounts - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigStaticDir, kn) { - currentKey = ffjtContainerConfigStaticDir - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigShmSize, kn) { - currentKey = ffjtContainerConfigShmSize - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigShmDir, kn) { - currentKey = ffjtContainerConfigShmDir - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigImageVolumes, kn) { - currentKey = ffjtContainerConfigImageVolumes - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigRootfs, kn) { - currentKey = ffjtContainerConfigRootfs - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigRootfsImageName, kn) { - currentKey = ffjtContainerConfigRootfsImageName - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigRootfsImageID, kn) { - currentKey = ffjtContainerConfigRootfsImageID - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigIDMappings, kn) { - currentKey = ffjtContainerConfigIDMappings - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigNamespace, kn) { - currentKey = ffjtContainerConfigNamespace - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyContainerConfigPod, kn) { - currentKey = ffjtContainerConfigPod - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyContainerConfigName, kn) { - currentKey = ffjtContainerConfigName - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyContainerConfigID, kn) { - currentKey = ffjtContainerConfigID - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyContainerConfigSpec, kn) { - currentKey = ffjtContainerConfigSpec - state = fflib.FFParse_want_colon - goto mainparse - } - - currentKey = ffjtContainerConfignosuchkey - state = fflib.FFParse_want_colon - goto mainparse - } - - case fflib.FFParse_want_colon: - if tok != fflib.FFTok_colon { - wantedTok = fflib.FFTok_colon - goto wrongtokenerror - } - state = fflib.FFParse_want_value - continue - case fflib.FFParse_want_value: - - if tok == fflib.FFTok_left_brace || tok == fflib.FFTok_left_bracket || tok == fflib.FFTok_integer || tok == fflib.FFTok_double || tok == fflib.FFTok_string || tok == fflib.FFTok_bool || tok == fflib.FFTok_null { - switch currentKey { - - case ffjtContainerConfigSpec: - goto handle_Spec - - case ffjtContainerConfigID: - goto handle_ID - - case ffjtContainerConfigName: - goto handle_Name - - case ffjtContainerConfigPod: - goto handle_Pod - - case ffjtContainerConfigNamespace: - goto handle_Namespace - - case ffjtContainerConfigIDMappings: - goto handle_IDMappings - - case ffjtContainerConfigRootfsImageID: - goto handle_RootfsImageID - - case ffjtContainerConfigRootfsImageName: - goto handle_RootfsImageName - - case ffjtContainerConfigRootfs: - goto handle_Rootfs - - case ffjtContainerConfigImageVolumes: - goto handle_ImageVolumes - - case ffjtContainerConfigShmDir: - goto handle_ShmDir - - case ffjtContainerConfigShmSize: - goto handle_ShmSize - - case ffjtContainerConfigStaticDir: - goto handle_StaticDir - - case ffjtContainerConfigMounts: - goto handle_Mounts - - case ffjtContainerConfigPrivileged: - goto handle_Privileged - - case ffjtContainerConfigProcessLabel: - goto handle_ProcessLabel - - case ffjtContainerConfigMountLabel: - goto handle_MountLabel - - case ffjtContainerConfigUser: - goto handle_User - - case ffjtContainerConfigGroups: - goto handle_Groups - - case ffjtContainerConfigIPCNsCtr: - goto handle_IPCNsCtr - - case ffjtContainerConfigMountNsCtr: - goto handle_MountNsCtr - - case ffjtContainerConfigNetNsCtr: - goto handle_NetNsCtr - - case ffjtContainerConfigPIDNsCtr: - goto handle_PIDNsCtr - - case ffjtContainerConfigUserNsCtr: - goto handle_UserNsCtr - - case ffjtContainerConfigUTSNsCtr: - goto handle_UTSNsCtr - - case ffjtContainerConfigCgroupNsCtr: - goto handle_CgroupNsCtr - - case ffjtContainerConfigDependencies: - goto handle_Dependencies - - case ffjtContainerConfigCreateNetNS: - goto handle_CreateNetNS - - case ffjtContainerConfigPortMappings: - goto handle_PortMappings - - case ffjtContainerConfigDNSServer: - goto handle_DNSServer - - case ffjtContainerConfigDNSSearch: - goto handle_DNSSearch - - case ffjtContainerConfigDNSOption: - goto handle_DNSOption - - case ffjtContainerConfigHostAdd: - goto handle_HostAdd - - case ffjtContainerConfigNetworks: - goto handle_Networks - - case ffjtContainerConfigUserVolumes: - goto handle_UserVolumes - - case ffjtContainerConfigEntrypoint: - goto handle_Entrypoint - - case ffjtContainerConfigCommand: - goto handle_Command - - case ffjtContainerConfigStdin: - goto handle_Stdin - - case ffjtContainerConfigLabels: - goto handle_Labels - - case ffjtContainerConfigStopSignal: - goto handle_StopSignal - - case ffjtContainerConfigStopTimeout: - goto handle_StopTimeout - - case ffjtContainerConfigCreatedTime: - goto handle_CreatedTime - - case ffjtContainerConfigCgroupParent: - goto handle_CgroupParent - - case ffjtContainerConfigLogPath: - goto handle_LogPath - - case ffjtContainerConfigConmonPidFile: - goto handle_ConmonPidFile - - case ffjtContainerConfigPostConfigureNetNS: - goto handle_PostConfigureNetNS - - case ffjtContainerConfigExitCommand: - goto handle_ExitCommand - - case ffjtContainerConfigLocalVolumes: - goto handle_LocalVolumes - - case ffjtContainerConfigIsInfra: - goto handle_IsInfra - - case ffjtContainerConfignosuchkey: - err = fs.SkipField(tok) - if err != nil { - return fs.WrapErr(err) - } - state = fflib.FFParse_after_value - goto mainparse - } - } else { - goto wantedvalue - } - } - } - -handle_Spec: - - /* handler: j.Spec type=specs.Spec kind=struct quoted=false*/ - - { - /* Falling back. type=specs.Spec kind=struct */ - tbuf, err := fs.CaptureField(tok) - if err != nil { - return fs.WrapErr(err) - } - - err = json.Unmarshal(tbuf, &j.Spec) - if err != nil { - return fs.WrapErr(err) - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_ID: - - /* handler: j.ID type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.ID = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_Name: - - /* handler: j.Name type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.Name = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_Pod: - - /* handler: j.Pod type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.Pod = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_Namespace: - - /* handler: j.Namespace type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.Namespace = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_IDMappings: - - /* handler: j.IDMappings type=storage.IDMappingOptions kind=struct quoted=false*/ - - { - /* Falling back. type=storage.IDMappingOptions kind=struct */ - tbuf, err := fs.CaptureField(tok) - if err != nil { - return fs.WrapErr(err) - } - - err = json.Unmarshal(tbuf, &j.IDMappings) - if err != nil { - return fs.WrapErr(err) - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_RootfsImageID: - - /* handler: j.RootfsImageID type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.RootfsImageID = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_RootfsImageName: - - /* handler: j.RootfsImageName type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.RootfsImageName = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_Rootfs: - - /* handler: j.Rootfs type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.Rootfs = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_ImageVolumes: - - /* handler: j.ImageVolumes type=bool kind=bool quoted=false*/ - - { - if tok != fflib.FFTok_bool && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for bool", tok)) - } - } - - { - if tok == fflib.FFTok_null { - - } else { - tmpb := fs.Output.Bytes() - - if bytes.Compare([]byte{'t', 'r', 'u', 'e'}, tmpb) == 0 { - - j.ImageVolumes = true - - } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { - - j.ImageVolumes = false - - } else { - err = errors.New("unexpected bytes for true/false value") - return fs.WrapErr(err) - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_ShmDir: - - /* handler: j.ShmDir type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.ShmDir = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_ShmSize: - - /* handler: j.ShmSize type=int64 kind=int64 quoted=false*/ - - { - if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for int64", tok)) - } - } - - { - - if tok == fflib.FFTok_null { - - } else { - - tval, err := fflib.ParseInt(fs.Output.Bytes(), 10, 64) - - if err != nil { - return fs.WrapErr(err) - } - - j.ShmSize = int64(tval) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_StaticDir: - - /* handler: j.StaticDir type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.StaticDir = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_Mounts: - - /* handler: j.Mounts type=[]string kind=slice quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_brace && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.Mounts = nil - } else { - - j.Mounts = []string{} - - wantVal := true - - for { - - var tmpJMounts string - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_brace { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: tmpJMounts type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - tmpJMounts = string(string(outBuf)) - - } - } - - j.Mounts = append(j.Mounts, tmpJMounts) - - wantVal = false - } - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_Privileged: - - /* handler: j.Privileged type=bool kind=bool quoted=false*/ - - { - if tok != fflib.FFTok_bool && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for bool", tok)) - } - } - - { - if tok == fflib.FFTok_null { - - } else { - tmpb := fs.Output.Bytes() - - if bytes.Compare([]byte{'t', 'r', 'u', 'e'}, tmpb) == 0 { - - j.Privileged = true - - } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { - - j.Privileged = false - - } else { - err = errors.New("unexpected bytes for true/false value") - return fs.WrapErr(err) - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_ProcessLabel: - - /* handler: j.ProcessLabel type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.ProcessLabel = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_MountLabel: - - /* handler: j.MountLabel type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.MountLabel = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_User: - - /* handler: j.User type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.User = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_Groups: - - /* handler: j.Groups type=[]string kind=slice quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_brace && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.Groups = nil - } else { - - j.Groups = []string{} - - wantVal := true - - for { - - var tmpJGroups string - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_brace { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: tmpJGroups type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - tmpJGroups = string(string(outBuf)) - - } - } - - j.Groups = append(j.Groups, tmpJGroups) - - wantVal = false - } - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_IPCNsCtr: - - /* handler: j.IPCNsCtr type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.IPCNsCtr = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_MountNsCtr: - - /* handler: j.MountNsCtr type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.MountNsCtr = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_NetNsCtr: - - /* handler: j.NetNsCtr type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.NetNsCtr = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_PIDNsCtr: - - /* handler: j.PIDNsCtr type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.PIDNsCtr = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_UserNsCtr: - - /* handler: j.UserNsCtr type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.UserNsCtr = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_UTSNsCtr: - - /* handler: j.UTSNsCtr type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.UTSNsCtr = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_CgroupNsCtr: - - /* handler: j.CgroupNsCtr type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.CgroupNsCtr = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_Dependencies: - - /* handler: j.Dependencies type=[]string kind=slice quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_brace && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.Dependencies = nil - } else { - - j.Dependencies = []string{} - - wantVal := true - - for { - - var tmpJDependencies string - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_brace { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: tmpJDependencies type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - tmpJDependencies = string(string(outBuf)) - - } - } - - j.Dependencies = append(j.Dependencies, tmpJDependencies) - - wantVal = false - } - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_CreateNetNS: - - /* handler: j.CreateNetNS type=bool kind=bool quoted=false*/ - - { - if tok != fflib.FFTok_bool && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for bool", tok)) - } - } - - { - if tok == fflib.FFTok_null { - - } else { - tmpb := fs.Output.Bytes() - - if bytes.Compare([]byte{'t', 'r', 'u', 'e'}, tmpb) == 0 { - - j.CreateNetNS = true - - } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { - - j.CreateNetNS = false - - } else { - err = errors.New("unexpected bytes for true/false value") - return fs.WrapErr(err) - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_PortMappings: - - /* handler: j.PortMappings type=[]ocicni.PortMapping kind=slice quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_brace && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.PortMappings = nil - } else { - - j.PortMappings = []ocicni.PortMapping{} - - wantVal := true - - for { - - var tmpJPortMappings ocicni.PortMapping - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_brace { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: tmpJPortMappings type=ocicni.PortMapping kind=struct quoted=false*/ - - { - /* Falling back. type=ocicni.PortMapping kind=struct */ - tbuf, err := fs.CaptureField(tok) - if err != nil { - return fs.WrapErr(err) - } - - err = json.Unmarshal(tbuf, &tmpJPortMappings) - if err != nil { - return fs.WrapErr(err) - } - } - - j.PortMappings = append(j.PortMappings, tmpJPortMappings) - - wantVal = false - } - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_DNSServer: - - /* handler: j.DNSServer type=[]net.IP kind=slice quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_brace && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.DNSServer = nil - } else { - - j.DNSServer = []net.IP{} - - wantVal := true - - for { - - var tmpJDNSServer net.IP - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_brace { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: tmpJDNSServer type=net.IP kind=slice quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for IP", tok)) - } - } - - if tok == fflib.FFTok_null { - tmpJDNSServer = nil - } else { - b := make([]byte, base64.StdEncoding.DecodedLen(fs.Output.Len())) - n, err := base64.StdEncoding.Decode(b, fs.Output.Bytes()) - if err != nil { - return fs.WrapErr(err) - } - - v := reflect.ValueOf(&tmpJDNSServer).Elem() - v.SetBytes(b[0:n]) - - } - } - - j.DNSServer = append(j.DNSServer, tmpJDNSServer) - - wantVal = false - } - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_DNSSearch: - - /* handler: j.DNSSearch type=[]string kind=slice quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_brace && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.DNSSearch = nil - } else { - - j.DNSSearch = []string{} - - wantVal := true - - for { - - var tmpJDNSSearch string - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_brace { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: tmpJDNSSearch type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - tmpJDNSSearch = string(string(outBuf)) - - } - } - - j.DNSSearch = append(j.DNSSearch, tmpJDNSSearch) - - wantVal = false - } - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_DNSOption: - - /* handler: j.DNSOption type=[]string kind=slice quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_brace && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.DNSOption = nil - } else { - - j.DNSOption = []string{} - - wantVal := true - - for { - - var tmpJDNSOption string - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_brace { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: tmpJDNSOption type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - tmpJDNSOption = string(string(outBuf)) - - } - } - - j.DNSOption = append(j.DNSOption, tmpJDNSOption) - - wantVal = false - } - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_HostAdd: - - /* handler: j.HostAdd type=[]string kind=slice quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_brace && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.HostAdd = nil - } else { - - j.HostAdd = []string{} - - wantVal := true - - for { - - var tmpJHostAdd string - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_brace { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: tmpJHostAdd type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - tmpJHostAdd = string(string(outBuf)) - - } - } - - j.HostAdd = append(j.HostAdd, tmpJHostAdd) - - wantVal = false - } - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_Networks: - - /* handler: j.Networks type=[]string kind=slice quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_brace && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.Networks = nil - } else { - - j.Networks = []string{} - - wantVal := true - - for { - - var tmpJNetworks string - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_brace { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: tmpJNetworks type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - tmpJNetworks = string(string(outBuf)) - - } - } - - j.Networks = append(j.Networks, tmpJNetworks) - - wantVal = false - } - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_UserVolumes: - - /* handler: j.UserVolumes type=[]string kind=slice quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_brace && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.UserVolumes = nil - } else { - - j.UserVolumes = []string{} - - wantVal := true - - for { - - var tmpJUserVolumes string - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_brace { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: tmpJUserVolumes type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - tmpJUserVolumes = string(string(outBuf)) - - } - } - - j.UserVolumes = append(j.UserVolumes, tmpJUserVolumes) - - wantVal = false - } - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_Entrypoint: - - /* handler: j.Entrypoint type=[]string kind=slice quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_brace && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.Entrypoint = nil - } else { - - j.Entrypoint = []string{} - - wantVal := true - - for { - - var tmpJEntrypoint string - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_brace { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: tmpJEntrypoint type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - tmpJEntrypoint = string(string(outBuf)) - - } - } - - j.Entrypoint = append(j.Entrypoint, tmpJEntrypoint) - - wantVal = false - } - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_Command: - - /* handler: j.Command type=[]string kind=slice quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_brace && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.Command = nil - } else { - - j.Command = []string{} - - wantVal := true - - for { - - var tmpJCommand string - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_brace { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: tmpJCommand type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - tmpJCommand = string(string(outBuf)) - - } - } - - j.Command = append(j.Command, tmpJCommand) - - wantVal = false - } - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_Stdin: - - /* handler: j.Stdin type=bool kind=bool quoted=false*/ - - { - if tok != fflib.FFTok_bool && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for bool", tok)) - } - } - - { - if tok == fflib.FFTok_null { - - } else { - tmpb := fs.Output.Bytes() - - if bytes.Compare([]byte{'t', 'r', 'u', 'e'}, tmpb) == 0 { - - j.Stdin = true - - } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { - - j.Stdin = false - - } else { - err = errors.New("unexpected bytes for true/false value") - return fs.WrapErr(err) - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_Labels: - - /* handler: j.Labels type=map[string]string kind=map quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_bracket && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.Labels = nil - } else { - - j.Labels = make(map[string]string, 0) - - wantVal := true - - for { - - var k string - - var tmpJLabels string - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_bracket { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: k type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - k = string(string(outBuf)) - - } - } - - // Expect ':' after key - tok = fs.Scan() - if tok != fflib.FFTok_colon { - return fs.WrapErr(fmt.Errorf("wanted colon token, but got token: %v", tok)) - } - - tok = fs.Scan() - /* handler: tmpJLabels type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - tmpJLabels = string(string(outBuf)) - - } - } - - j.Labels[k] = tmpJLabels - - wantVal = false - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_StopSignal: - - /* handler: j.StopSignal type=uint kind=uint quoted=false*/ - - { - if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for uint", tok)) - } - } - - { - - if tok == fflib.FFTok_null { - - } else { - - tval, err := fflib.ParseUint(fs.Output.Bytes(), 10, 64) - - if err != nil { - return fs.WrapErr(err) - } - - j.StopSignal = uint(tval) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_StopTimeout: - - /* handler: j.StopTimeout type=uint kind=uint quoted=false*/ - - { - if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for uint", tok)) - } - } - - { - - if tok == fflib.FFTok_null { - - } else { - - tval, err := fflib.ParseUint(fs.Output.Bytes(), 10, 64) - - if err != nil { - return fs.WrapErr(err) - } - - j.StopTimeout = uint(tval) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_CreatedTime: - - /* handler: j.CreatedTime type=time.Time kind=struct quoted=false*/ - - { - if tok == fflib.FFTok_null { - - } else { - - tbuf, err := fs.CaptureField(tok) - if err != nil { - return fs.WrapErr(err) - } - - err = j.CreatedTime.UnmarshalJSON(tbuf) - if err != nil { - return fs.WrapErr(err) - } - } - state = fflib.FFParse_after_value - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_CgroupParent: - - /* handler: j.CgroupParent type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.CgroupParent = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_LogPath: - - /* handler: j.LogPath type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.LogPath = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_ConmonPidFile: - - /* handler: j.ConmonPidFile type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.ConmonPidFile = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_PostConfigureNetNS: - - /* handler: j.PostConfigureNetNS type=bool kind=bool quoted=false*/ - - { - if tok != fflib.FFTok_bool && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for bool", tok)) - } - } - - { - if tok == fflib.FFTok_null { - - } else { - tmpb := fs.Output.Bytes() - - if bytes.Compare([]byte{'t', 'r', 'u', 'e'}, tmpb) == 0 { - - j.PostConfigureNetNS = true - - } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { - - j.PostConfigureNetNS = false - - } else { - err = errors.New("unexpected bytes for true/false value") - return fs.WrapErr(err) - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_ExitCommand: - - /* handler: j.ExitCommand type=[]string kind=slice quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_brace && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.ExitCommand = nil - } else { - - j.ExitCommand = []string{} - - wantVal := true - - for { - - var tmpJExitCommand string - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_brace { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: tmpJExitCommand type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - tmpJExitCommand = string(string(outBuf)) - - } - } - - j.ExitCommand = append(j.ExitCommand, tmpJExitCommand) - - wantVal = false - } - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_LocalVolumes: - - /* handler: j.LocalVolumes type=[]string kind=slice quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_brace && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.LocalVolumes = nil - } else { - - j.LocalVolumes = []string{} - - wantVal := true - - for { - - var tmpJLocalVolumes string - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_brace { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: tmpJLocalVolumes type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - tmpJLocalVolumes = string(string(outBuf)) - - } - } - - j.LocalVolumes = append(j.LocalVolumes, tmpJLocalVolumes) - - wantVal = false - } - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_IsInfra: - - /* handler: j.IsInfra type=bool kind=bool quoted=false*/ - - { - if tok != fflib.FFTok_bool && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for bool", tok)) - } - } - - { - if tok == fflib.FFTok_null { - - } else { - tmpb := fs.Output.Bytes() - - if bytes.Compare([]byte{'t', 'r', 'u', 'e'}, tmpb) == 0 { - - j.IsInfra = true - - } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { - - j.IsInfra = false - - } else { - err = errors.New("unexpected bytes for true/false value") - return fs.WrapErr(err) - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -wantedvalue: - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) -wrongtokenerror: - return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) -tokerror: - if fs.BigError != nil { - return fs.WrapErr(fs.BigError) - } - err = fs.Error.ToError() - if err != nil { - return fs.WrapErr(err) - } - panic("ffjson-generated: unreachable, please report bug.") -done: - - return nil -} - -// MarshalJSON marshal bytes to json - template -func (j *ExecSession) MarshalJSON() ([]byte, error) { - var buf fflib.Buffer - if j == nil { - buf.WriteString("null") - return buf.Bytes(), nil - } - err := j.MarshalJSONBuf(&buf) - if err != nil { - return nil, err - } - return buf.Bytes(), nil -} - -// MarshalJSONBuf marshal buff to json - template -func (j *ExecSession) MarshalJSONBuf(buf fflib.EncodingBuffer) error { - if j == nil { - buf.WriteString("null") - return nil - } - var err error - var obj []byte - _ = obj - _ = err - buf.WriteString(`{"id":`) - fflib.WriteJsonString(buf, string(j.ID)) - buf.WriteString(`,"command":`) - if j.Command != nil { - buf.WriteString(`[`) - for i, v := range j.Command { - if i != 0 { - buf.WriteString(`,`) - } - fflib.WriteJsonString(buf, string(v)) - } - buf.WriteString(`]`) - } else { - buf.WriteString(`null`) - } - buf.WriteString(`,"pid":`) - fflib.FormatBits2(buf, uint64(j.PID), 10, j.PID < 0) - buf.WriteByte('}') - return nil -} - -const ( - ffjtExecSessionbase = iota - ffjtExecSessionnosuchkey - - ffjtExecSessionID - - ffjtExecSessionCommand - - ffjtExecSessionPID -) - -var ffjKeyExecSessionID = []byte("id") - -var ffjKeyExecSessionCommand = []byte("command") - -var ffjKeyExecSessionPID = []byte("pid") - -// UnmarshalJSON umarshall json - template of ffjson -func (j *ExecSession) UnmarshalJSON(input []byte) error { - fs := fflib.NewFFLexer(input) - return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) -} - -// UnmarshalJSONFFLexer fast json unmarshall - template ffjson -func (j *ExecSession) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { - var err error - currentKey := ffjtExecSessionbase - _ = currentKey - tok := fflib.FFTok_init - wantedTok := fflib.FFTok_init - -mainparse: - for { - tok = fs.Scan() - // println(fmt.Sprintf("debug: tok: %v state: %v", tok, state)) - if tok == fflib.FFTok_error { - goto tokerror - } - - switch state { - - case fflib.FFParse_map_start: - if tok != fflib.FFTok_left_bracket { - wantedTok = fflib.FFTok_left_bracket - goto wrongtokenerror - } - state = fflib.FFParse_want_key - continue - - case fflib.FFParse_after_value: - if tok == fflib.FFTok_comma { - state = fflib.FFParse_want_key - } else if tok == fflib.FFTok_right_bracket { - goto done - } else { - wantedTok = fflib.FFTok_comma - goto wrongtokenerror - } - - case fflib.FFParse_want_key: - // json {} ended. goto exit. woo. - if tok == fflib.FFTok_right_bracket { - goto done - } - if tok != fflib.FFTok_string { - wantedTok = fflib.FFTok_string - goto wrongtokenerror - } - - kn := fs.Output.Bytes() - if len(kn) <= 0 { - // "" case. hrm. - currentKey = ffjtExecSessionnosuchkey - state = fflib.FFParse_want_colon - goto mainparse - } else { - switch kn[0] { - - case 'c': - - if bytes.Equal(ffjKeyExecSessionCommand, kn) { - currentKey = ffjtExecSessionCommand - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'i': - - if bytes.Equal(ffjKeyExecSessionID, kn) { - currentKey = ffjtExecSessionID - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'p': - - if bytes.Equal(ffjKeyExecSessionPID, kn) { - currentKey = ffjtExecSessionPID - state = fflib.FFParse_want_colon - goto mainparse - } - - } - - if fflib.SimpleLetterEqualFold(ffjKeyExecSessionPID, kn) { - currentKey = ffjtExecSessionPID - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyExecSessionCommand, kn) { - currentKey = ffjtExecSessionCommand - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyExecSessionID, kn) { - currentKey = ffjtExecSessionID - state = fflib.FFParse_want_colon - goto mainparse - } - - currentKey = ffjtExecSessionnosuchkey - state = fflib.FFParse_want_colon - goto mainparse - } - - case fflib.FFParse_want_colon: - if tok != fflib.FFTok_colon { - wantedTok = fflib.FFTok_colon - goto wrongtokenerror - } - state = fflib.FFParse_want_value - continue - case fflib.FFParse_want_value: - - if tok == fflib.FFTok_left_brace || tok == fflib.FFTok_left_bracket || tok == fflib.FFTok_integer || tok == fflib.FFTok_double || tok == fflib.FFTok_string || tok == fflib.FFTok_bool || tok == fflib.FFTok_null { - switch currentKey { - - case ffjtExecSessionID: - goto handle_ID - - case ffjtExecSessionCommand: - goto handle_Command - - case ffjtExecSessionPID: - goto handle_PID - - case ffjtExecSessionnosuchkey: - err = fs.SkipField(tok) - if err != nil { - return fs.WrapErr(err) - } - state = fflib.FFParse_after_value - goto mainparse - } - } else { - goto wantedvalue - } - } - } - -handle_ID: - - /* handler: j.ID type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.ID = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_Command: - - /* handler: j.Command type=[]string kind=slice quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_brace && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.Command = nil - } else { - - j.Command = []string{} - - wantVal := true - - for { - - var tmpJCommand string - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_brace { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: tmpJCommand type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - tmpJCommand = string(string(outBuf)) - - } - } - - j.Command = append(j.Command, tmpJCommand) - - wantVal = false - } - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_PID: - - /* handler: j.PID type=int kind=int quoted=false*/ - - { - if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for int", tok)) - } - } - - { - - if tok == fflib.FFTok_null { - - } else { - - tval, err := fflib.ParseInt(fs.Output.Bytes(), 10, 64) - - if err != nil { - return fs.WrapErr(err) - } - - j.PID = int(tval) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -wantedvalue: - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) -wrongtokenerror: - return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) -tokerror: - if fs.BigError != nil { - return fs.WrapErr(fs.BigError) - } - err = fs.Error.ToError() - if err != nil { - return fs.WrapErr(err) - } - panic("ffjson-generated: unreachable, please report bug.") -done: - - return nil -} - -// MarshalJSON marshal bytes to json - template -func (j *containerState) MarshalJSON() ([]byte, error) { - var buf fflib.Buffer - if j == nil { - buf.WriteString("null") - return buf.Bytes(), nil - } - err := j.MarshalJSONBuf(&buf) - if err != nil { - return nil, err - } - return buf.Bytes(), nil -} - -// MarshalJSONBuf marshal buff to json - template -func (j *containerState) MarshalJSONBuf(buf fflib.EncodingBuffer) error { - if j == nil { - buf.WriteString("null") - return nil - } - var err error - var obj []byte - _ = obj - _ = err - buf.WriteString(`{ "state":`) - fflib.FormatBits2(buf, uint64(j.State), 10, j.State < 0) - buf.WriteByte(',') - if len(j.ConfigPath) != 0 { - buf.WriteString(`"configPath":`) - fflib.WriteJsonString(buf, string(j.ConfigPath)) - buf.WriteByte(',') - } - if len(j.RunDir) != 0 { - buf.WriteString(`"runDir":`) - fflib.WriteJsonString(buf, string(j.RunDir)) - buf.WriteByte(',') - } - if len(j.DestinationRunDir) != 0 { - buf.WriteString(`"destinationRunDir":`) - fflib.WriteJsonString(buf, string(j.DestinationRunDir)) - buf.WriteByte(',') - } - if j.Mounted != false { - if j.Mounted { - buf.WriteString(`"mounted":true`) - } else { - buf.WriteString(`"mounted":false`) - } - buf.WriteByte(',') - } - if len(j.Mountpoint) != 0 { - buf.WriteString(`"mountPoint":`) - fflib.WriteJsonString(buf, string(j.Mountpoint)) - buf.WriteByte(',') - } - if len(j.RealMountpoint) != 0 { - buf.WriteString(`"realMountPoint":`) - fflib.WriteJsonString(buf, string(j.RealMountpoint)) - buf.WriteByte(',') - } - if true { - buf.WriteString(`"startedTime":`) - - { - - obj, err = j.StartedTime.MarshalJSON() - if err != nil { - return err - } - buf.Write(obj) - - } - buf.WriteByte(',') - } - if true { - buf.WriteString(`"finishedTime":`) - - { - - obj, err = j.FinishedTime.MarshalJSON() - if err != nil { - return err - } - buf.Write(obj) - - } - buf.WriteByte(',') - } - if j.ExitCode != 0 { - buf.WriteString(`"exitCode":`) - fflib.FormatBits2(buf, uint64(j.ExitCode), 10, j.ExitCode < 0) - buf.WriteByte(',') - } - if j.Exited != false { - if j.Exited { - buf.WriteString(`"exited":true`) - } else { - buf.WriteString(`"exited":false`) - } - buf.WriteByte(',') - } - if j.OOMKilled != false { - if j.OOMKilled { - buf.WriteString(`"oomKilled":true`) - } else { - buf.WriteString(`"oomKilled":false`) - } - buf.WriteByte(',') - } - if j.PID != 0 { - buf.WriteString(`"pid":`) - fflib.FormatBits2(buf, uint64(j.PID), 10, j.PID < 0) - buf.WriteByte(',') - } - if len(j.ExecSessions) != 0 { - buf.WriteString(`"execSessions":`) - /* Falling back. type=map[string]*libpod.ExecSession kind=map */ - err = buf.Encode(j.ExecSessions) - if err != nil { - return err - } - buf.WriteByte(',') - } - if len(j.NetworkStatus) != 0 { - buf.WriteString(`"networkResults":`) - if j.NetworkStatus != nil { - buf.WriteString(`[`) - for i, v := range j.NetworkStatus { - if i != 0 { - buf.WriteString(`,`) - } - if v != nil { - /* Struct fall back. type=current.Result kind=struct */ - err = buf.Encode(&v) - if err != nil { - return err - } - } else { - buf.WriteString(`null`) - } - } - buf.WriteString(`]`) - } else { - buf.WriteString(`null`) - } - buf.WriteByte(',') - } - if len(j.BindMounts) != 0 { - if j.BindMounts == nil { - buf.WriteString(`"bindMounts":null`) - } else { - buf.WriteString(`"bindMounts":{ `) - for key, value := range j.BindMounts { - fflib.WriteJsonString(buf, key) - buf.WriteString(`:`) - fflib.WriteJsonString(buf, string(value)) - buf.WriteByte(',') - } - buf.Rewind(1) - buf.WriteByte('}') - } - buf.WriteByte(',') - } - if len(j.UserNSRoot) != 0 { - buf.WriteString(`"userNSRoot":`) - fflib.WriteJsonString(buf, string(j.UserNSRoot)) - buf.WriteByte(',') - } - if len(j.ExtensionStageHooks) != 0 { - buf.WriteString(`"extensionStageHooks":`) - /* Falling back. type=map[string][]specs.Hook kind=map */ - err = buf.Encode(j.ExtensionStageHooks) - if err != nil { - return err - } - buf.WriteByte(',') - } - buf.Rewind(1) - buf.WriteByte('}') - return nil -} - -const ( - ffjtcontainerStatebase = iota - ffjtcontainerStatenosuchkey - - ffjtcontainerStateState - - ffjtcontainerStateConfigPath - - ffjtcontainerStateRunDir - - ffjtcontainerStateDestinationRunDir - - ffjtcontainerStateMounted - - ffjtcontainerStateMountpoint - - ffjtcontainerStateRealMountpoint - - ffjtcontainerStateStartedTime - - ffjtcontainerStateFinishedTime - - ffjtcontainerStateExitCode - - ffjtcontainerStateExited - - ffjtcontainerStateOOMKilled - - ffjtcontainerStatePID - - ffjtcontainerStateExecSessions - - ffjtcontainerStateNetworkStatus - - ffjtcontainerStateBindMounts - - ffjtcontainerStateUserNSRoot - - ffjtcontainerStateExtensionStageHooks -) - -var ffjKeycontainerStateState = []byte("state") - -var ffjKeycontainerStateConfigPath = []byte("configPath") - -var ffjKeycontainerStateRunDir = []byte("runDir") - -var ffjKeycontainerStateDestinationRunDir = []byte("destinationRunDir") - -var ffjKeycontainerStateMounted = []byte("mounted") - -var ffjKeycontainerStateMountpoint = []byte("mountPoint") - -var ffjKeycontainerStateRealMountpoint = []byte("realMountPoint") - -var ffjKeycontainerStateStartedTime = []byte("startedTime") - -var ffjKeycontainerStateFinishedTime = []byte("finishedTime") - -var ffjKeycontainerStateExitCode = []byte("exitCode") - -var ffjKeycontainerStateExited = []byte("exited") - -var ffjKeycontainerStateOOMKilled = []byte("oomKilled") - -var ffjKeycontainerStatePID = []byte("pid") - -var ffjKeycontainerStateExecSessions = []byte("execSessions") - -var ffjKeycontainerStateNetworkStatus = []byte("networkResults") - -var ffjKeycontainerStateBindMounts = []byte("bindMounts") - -var ffjKeycontainerStateUserNSRoot = []byte("userNSRoot") - -var ffjKeycontainerStateExtensionStageHooks = []byte("extensionStageHooks") - -// UnmarshalJSON umarshall json - template of ffjson -func (j *containerState) UnmarshalJSON(input []byte) error { - fs := fflib.NewFFLexer(input) - return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) -} - -// UnmarshalJSONFFLexer fast json unmarshall - template ffjson -func (j *containerState) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { - var err error - currentKey := ffjtcontainerStatebase - _ = currentKey - tok := fflib.FFTok_init - wantedTok := fflib.FFTok_init - -mainparse: - for { - tok = fs.Scan() - // println(fmt.Sprintf("debug: tok: %v state: %v", tok, state)) - if tok == fflib.FFTok_error { - goto tokerror - } - - switch state { - - case fflib.FFParse_map_start: - if tok != fflib.FFTok_left_bracket { - wantedTok = fflib.FFTok_left_bracket - goto wrongtokenerror - } - state = fflib.FFParse_want_key - continue - - case fflib.FFParse_after_value: - if tok == fflib.FFTok_comma { - state = fflib.FFParse_want_key - } else if tok == fflib.FFTok_right_bracket { - goto done - } else { - wantedTok = fflib.FFTok_comma - goto wrongtokenerror - } - - case fflib.FFParse_want_key: - // json {} ended. goto exit. woo. - if tok == fflib.FFTok_right_bracket { - goto done - } - if tok != fflib.FFTok_string { - wantedTok = fflib.FFTok_string - goto wrongtokenerror - } - - kn := fs.Output.Bytes() - if len(kn) <= 0 { - // "" case. hrm. - currentKey = ffjtcontainerStatenosuchkey - state = fflib.FFParse_want_colon - goto mainparse - } else { - switch kn[0] { - - case 'b': - - if bytes.Equal(ffjKeycontainerStateBindMounts, kn) { - currentKey = ffjtcontainerStateBindMounts - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'c': - - if bytes.Equal(ffjKeycontainerStateConfigPath, kn) { - currentKey = ffjtcontainerStateConfigPath - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'd': - - if bytes.Equal(ffjKeycontainerStateDestinationRunDir, kn) { - currentKey = ffjtcontainerStateDestinationRunDir - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'e': - - if bytes.Equal(ffjKeycontainerStateExitCode, kn) { - currentKey = ffjtcontainerStateExitCode - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeycontainerStateExited, kn) { - currentKey = ffjtcontainerStateExited - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeycontainerStateExecSessions, kn) { - currentKey = ffjtcontainerStateExecSessions - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeycontainerStateExtensionStageHooks, kn) { - currentKey = ffjtcontainerStateExtensionStageHooks - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'f': - - if bytes.Equal(ffjKeycontainerStateFinishedTime, kn) { - currentKey = ffjtcontainerStateFinishedTime - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'm': - - if bytes.Equal(ffjKeycontainerStateMounted, kn) { - currentKey = ffjtcontainerStateMounted - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeycontainerStateMountpoint, kn) { - currentKey = ffjtcontainerStateMountpoint - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'n': - - if bytes.Equal(ffjKeycontainerStateNetworkStatus, kn) { - currentKey = ffjtcontainerStateNetworkStatus - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'o': - - if bytes.Equal(ffjKeycontainerStateOOMKilled, kn) { - currentKey = ffjtcontainerStateOOMKilled - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'p': - - if bytes.Equal(ffjKeycontainerStatePID, kn) { - currentKey = ffjtcontainerStatePID - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'r': - - if bytes.Equal(ffjKeycontainerStateRunDir, kn) { - currentKey = ffjtcontainerStateRunDir - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeycontainerStateRealMountpoint, kn) { - currentKey = ffjtcontainerStateRealMountpoint - state = fflib.FFParse_want_colon - goto mainparse - } - - case 's': - - if bytes.Equal(ffjKeycontainerStateState, kn) { - currentKey = ffjtcontainerStateState - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeycontainerStateStartedTime, kn) { - currentKey = ffjtcontainerStateStartedTime - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'u': - - if bytes.Equal(ffjKeycontainerStateUserNSRoot, kn) { - currentKey = ffjtcontainerStateUserNSRoot - state = fflib.FFParse_want_colon - goto mainparse - } - - } - - if fflib.EqualFoldRight(ffjKeycontainerStateExtensionStageHooks, kn) { - currentKey = ffjtcontainerStateExtensionStageHooks - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeycontainerStateUserNSRoot, kn) { - currentKey = ffjtcontainerStateUserNSRoot - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeycontainerStateBindMounts, kn) { - currentKey = ffjtcontainerStateBindMounts - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeycontainerStateNetworkStatus, kn) { - currentKey = ffjtcontainerStateNetworkStatus - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeycontainerStateExecSessions, kn) { - currentKey = ffjtcontainerStateExecSessions - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeycontainerStatePID, kn) { - currentKey = ffjtcontainerStatePID - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeycontainerStateOOMKilled, kn) { - currentKey = ffjtcontainerStateOOMKilled - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeycontainerStateExited, kn) { - currentKey = ffjtcontainerStateExited - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeycontainerStateExitCode, kn) { - currentKey = ffjtcontainerStateExitCode - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeycontainerStateFinishedTime, kn) { - currentKey = ffjtcontainerStateFinishedTime - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeycontainerStateStartedTime, kn) { - currentKey = ffjtcontainerStateStartedTime - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeycontainerStateRealMountpoint, kn) { - currentKey = ffjtcontainerStateRealMountpoint - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeycontainerStateMountpoint, kn) { - currentKey = ffjtcontainerStateMountpoint - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeycontainerStateMounted, kn) { - currentKey = ffjtcontainerStateMounted - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeycontainerStateDestinationRunDir, kn) { - currentKey = ffjtcontainerStateDestinationRunDir - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeycontainerStateRunDir, kn) { - currentKey = ffjtcontainerStateRunDir - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeycontainerStateConfigPath, kn) { - currentKey = ffjtcontainerStateConfigPath - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeycontainerStateState, kn) { - currentKey = ffjtcontainerStateState - state = fflib.FFParse_want_colon - goto mainparse - } - - currentKey = ffjtcontainerStatenosuchkey - state = fflib.FFParse_want_colon - goto mainparse - } - - case fflib.FFParse_want_colon: - if tok != fflib.FFTok_colon { - wantedTok = fflib.FFTok_colon - goto wrongtokenerror - } - state = fflib.FFParse_want_value - continue - case fflib.FFParse_want_value: - - if tok == fflib.FFTok_left_brace || tok == fflib.FFTok_left_bracket || tok == fflib.FFTok_integer || tok == fflib.FFTok_double || tok == fflib.FFTok_string || tok == fflib.FFTok_bool || tok == fflib.FFTok_null { - switch currentKey { - - case ffjtcontainerStateState: - goto handle_State - - case ffjtcontainerStateConfigPath: - goto handle_ConfigPath - - case ffjtcontainerStateRunDir: - goto handle_RunDir - - case ffjtcontainerStateDestinationRunDir: - goto handle_DestinationRunDir - - case ffjtcontainerStateMounted: - goto handle_Mounted - - case ffjtcontainerStateMountpoint: - goto handle_Mountpoint - - case ffjtcontainerStateRealMountpoint: - goto handle_RealMountpoint - - case ffjtcontainerStateStartedTime: - goto handle_StartedTime - - case ffjtcontainerStateFinishedTime: - goto handle_FinishedTime - - case ffjtcontainerStateExitCode: - goto handle_ExitCode - - case ffjtcontainerStateExited: - goto handle_Exited - - case ffjtcontainerStateOOMKilled: - goto handle_OOMKilled - - case ffjtcontainerStatePID: - goto handle_PID - - case ffjtcontainerStateExecSessions: - goto handle_ExecSessions - - case ffjtcontainerStateNetworkStatus: - goto handle_NetworkStatus - - case ffjtcontainerStateBindMounts: - goto handle_BindMounts - - case ffjtcontainerStateUserNSRoot: - goto handle_UserNSRoot - - case ffjtcontainerStateExtensionStageHooks: - goto handle_ExtensionStageHooks - - case ffjtcontainerStatenosuchkey: - err = fs.SkipField(tok) - if err != nil { - return fs.WrapErr(err) - } - state = fflib.FFParse_after_value - goto mainparse - } - } else { - goto wantedvalue - } - } - } - -handle_State: - - /* handler: j.State type=libpod.ContainerStatus kind=int quoted=false*/ - - { - if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ContainerStatus", tok)) - } - } - - { - - if tok == fflib.FFTok_null { - - } else { - - tval, err := fflib.ParseInt(fs.Output.Bytes(), 10, 64) - - if err != nil { - return fs.WrapErr(err) - } - - j.State = ContainerStatus(tval) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_ConfigPath: - - /* handler: j.ConfigPath type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.ConfigPath = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_RunDir: - - /* handler: j.RunDir type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.RunDir = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_DestinationRunDir: - - /* handler: j.DestinationRunDir type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.DestinationRunDir = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_Mounted: - - /* handler: j.Mounted type=bool kind=bool quoted=false*/ - - { - if tok != fflib.FFTok_bool && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for bool", tok)) - } - } - - { - if tok == fflib.FFTok_null { - - } else { - tmpb := fs.Output.Bytes() - - if bytes.Compare([]byte{'t', 'r', 'u', 'e'}, tmpb) == 0 { - - j.Mounted = true - - } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { - - j.Mounted = false - - } else { - err = errors.New("unexpected bytes for true/false value") - return fs.WrapErr(err) - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_Mountpoint: - - /* handler: j.Mountpoint type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.Mountpoint = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_RealMountpoint: - - /* handler: j.RealMountpoint type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.RealMountpoint = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_StartedTime: - - /* handler: j.StartedTime type=time.Time kind=struct quoted=false*/ - - { - if tok == fflib.FFTok_null { - - } else { - - tbuf, err := fs.CaptureField(tok) - if err != nil { - return fs.WrapErr(err) - } - - err = j.StartedTime.UnmarshalJSON(tbuf) - if err != nil { - return fs.WrapErr(err) - } - } - state = fflib.FFParse_after_value - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_FinishedTime: - - /* handler: j.FinishedTime type=time.Time kind=struct quoted=false*/ - - { - if tok == fflib.FFTok_null { - - } else { - - tbuf, err := fs.CaptureField(tok) - if err != nil { - return fs.WrapErr(err) - } - - err = j.FinishedTime.UnmarshalJSON(tbuf) - if err != nil { - return fs.WrapErr(err) - } - } - state = fflib.FFParse_after_value - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_ExitCode: - - /* handler: j.ExitCode type=int32 kind=int32 quoted=false*/ - - { - if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for int32", tok)) - } - } - - { - - if tok == fflib.FFTok_null { - - } else { - - tval, err := fflib.ParseInt(fs.Output.Bytes(), 10, 32) - - if err != nil { - return fs.WrapErr(err) - } - - j.ExitCode = int32(tval) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_Exited: - - /* handler: j.Exited type=bool kind=bool quoted=false*/ - - { - if tok != fflib.FFTok_bool && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for bool", tok)) - } - } - - { - if tok == fflib.FFTok_null { - - } else { - tmpb := fs.Output.Bytes() - - if bytes.Compare([]byte{'t', 'r', 'u', 'e'}, tmpb) == 0 { - - j.Exited = true - - } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { - - j.Exited = false - - } else { - err = errors.New("unexpected bytes for true/false value") - return fs.WrapErr(err) - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_OOMKilled: - - /* handler: j.OOMKilled type=bool kind=bool quoted=false*/ - - { - if tok != fflib.FFTok_bool && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for bool", tok)) - } - } - - { - if tok == fflib.FFTok_null { - - } else { - tmpb := fs.Output.Bytes() - - if bytes.Compare([]byte{'t', 'r', 'u', 'e'}, tmpb) == 0 { - - j.OOMKilled = true - - } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { - - j.OOMKilled = false - - } else { - err = errors.New("unexpected bytes for true/false value") - return fs.WrapErr(err) - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_PID: - - /* handler: j.PID type=int kind=int quoted=false*/ - - { - if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for int", tok)) - } - } - - { - - if tok == fflib.FFTok_null { - - } else { - - tval, err := fflib.ParseInt(fs.Output.Bytes(), 10, 64) - - if err != nil { - return fs.WrapErr(err) - } - - j.PID = int(tval) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_ExecSessions: - - /* handler: j.ExecSessions type=map[string]*libpod.ExecSession kind=map quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_bracket && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.ExecSessions = nil - } else { - - j.ExecSessions = make(map[string]*ExecSession, 0) - - wantVal := true - - for { - - var k string - - var tmpJExecSessions *ExecSession - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_bracket { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: k type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - k = string(string(outBuf)) - - } - } - - // Expect ':' after key - tok = fs.Scan() - if tok != fflib.FFTok_colon { - return fs.WrapErr(fmt.Errorf("wanted colon token, but got token: %v", tok)) - } - - tok = fs.Scan() - /* handler: tmpJExecSessions type=*libpod.ExecSession kind=ptr quoted=false*/ - - { - if tok == fflib.FFTok_null { - - tmpJExecSessions = nil - - } else { - - if tmpJExecSessions == nil { - tmpJExecSessions = new(ExecSession) - } - - err = tmpJExecSessions.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) - if err != nil { - return err - } - } - state = fflib.FFParse_after_value - } - - j.ExecSessions[k] = tmpJExecSessions - - wantVal = false - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_NetworkStatus: - - /* handler: j.NetworkStatus type=[]*current.Result kind=slice quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_brace && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.NetworkStatus = nil - } else { - - j.NetworkStatus = []*current.Result{} - - wantVal := true - - for { - - var tmpJNetworkStatus *current.Result - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_brace { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: tmpJNetworkStatus type=*current.Result kind=ptr quoted=false*/ - - { - - if tok == fflib.FFTok_null { - tmpJNetworkStatus = nil - } else { - if tmpJNetworkStatus == nil { - tmpJNetworkStatus = new(current.Result) - } - - /* handler: tmpJNetworkStatus type=current.Result kind=struct quoted=false*/ - - { - /* Falling back. type=current.Result kind=struct */ - tbuf, err := fs.CaptureField(tok) - if err != nil { - return fs.WrapErr(err) - } - - err = json.Unmarshal(tbuf, &tmpJNetworkStatus) - if err != nil { - return fs.WrapErr(err) - } - } - - } - } - - j.NetworkStatus = append(j.NetworkStatus, tmpJNetworkStatus) - - wantVal = false - } - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_BindMounts: - - /* handler: j.BindMounts type=map[string]string kind=map quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_bracket && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.BindMounts = nil - } else { - - j.BindMounts = make(map[string]string, 0) - - wantVal := true - - for { - - var k string - - var tmpJBindMounts string - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_bracket { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: k type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - k = string(string(outBuf)) - - } - } - - // Expect ':' after key - tok = fs.Scan() - if tok != fflib.FFTok_colon { - return fs.WrapErr(fmt.Errorf("wanted colon token, but got token: %v", tok)) - } - - tok = fs.Scan() - /* handler: tmpJBindMounts type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - tmpJBindMounts = string(string(outBuf)) - - } - } - - j.BindMounts[k] = tmpJBindMounts - - wantVal = false - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_UserNSRoot: - - /* handler: j.UserNSRoot type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.UserNSRoot = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_ExtensionStageHooks: - - /* handler: j.ExtensionStageHooks type=map[string][]specs.Hook kind=map quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_bracket && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.ExtensionStageHooks = nil - } else { - - j.ExtensionStageHooks = make(map[string][]specs.Hook, 0) - - wantVal := true - - for { - - var k string - - var tmpJExtensionStageHooks []specs.Hook - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_bracket { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: k type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - k = string(string(outBuf)) - - } - } - - // Expect ':' after key - tok = fs.Scan() - if tok != fflib.FFTok_colon { - return fs.WrapErr(fmt.Errorf("wanted colon token, but got token: %v", tok)) - } - - tok = fs.Scan() - /* handler: tmpJExtensionStageHooks type=[]specs.Hook kind=slice quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_brace && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - tmpJExtensionStageHooks = nil - } else { - - tmpJExtensionStageHooks = []specs.Hook{} - - wantVal := true - - for { - - var tmpTmpJExtensionStageHooks specs.Hook - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_brace { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: tmpTmpJExtensionStageHooks type=specs.Hook kind=struct quoted=false*/ - - { - /* Falling back. type=specs.Hook kind=struct */ - tbuf, err := fs.CaptureField(tok) - if err != nil { - return fs.WrapErr(err) - } - - err = json.Unmarshal(tbuf, &tmpTmpJExtensionStageHooks) - if err != nil { - return fs.WrapErr(err) - } - } - - tmpJExtensionStageHooks = append(tmpJExtensionStageHooks, tmpTmpJExtensionStageHooks) - - wantVal = false - } - } - } - - j.ExtensionStageHooks[k] = tmpJExtensionStageHooks - - wantVal = false - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -wantedvalue: - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) -wrongtokenerror: - return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) -tokerror: - if fs.BigError != nil { - return fs.WrapErr(fs.BigError) - } - err = fs.Error.ToError() - if err != nil { - return fs.WrapErr(err) - } - panic("ffjson-generated: unreachable, please report bug.") -done: - - return nil -} diff --git a/libpod/pod.go b/libpod/pod.go index 9c7a3e3a3..8ac976f6a 100644 --- a/libpod/pod.go +++ b/libpod/pod.go @@ -29,6 +29,7 @@ type Pod struct { } // PodConfig represents a pod's static configuration +// easyjson:json type PodConfig struct { ID string `json:"id"` Name string `json:"name"` @@ -61,6 +62,7 @@ type PodConfig struct { } // podState represents a pod's state +// easyjson:json type podState struct { // CgroupPath is the path to the pod's CGroup CgroupPath string `json:"cgroupPath"` @@ -71,6 +73,7 @@ type podState struct { // PodInspect represents the data we want to display for // podman pod inspect +// easyjson:json type PodInspect struct { Config *PodConfig State *PodInspectState @@ -78,12 +81,14 @@ type PodInspect struct { } // PodInspectState contains inspect data on the pod's state +// easyjson:json type PodInspectState struct { CgroupPath string `json:"cgroupPath"` InfraContainerID string `json:"infraContainerID"` } // PodContainerInfo keeps information on a container in a pod +// easyjson:json type PodContainerInfo struct { ID string `json:"id"` State string `json:"state"` diff --git a/libpod/pod_easyjson.go b/libpod/pod_easyjson.go new file mode 100644 index 000000000..1074d4e35 --- /dev/null +++ b/libpod/pod_easyjson.go @@ -0,0 +1,574 @@ +// Code generated by easyjson for marshaling/unmarshaling. DO NOT EDIT. + +package libpod + +import ( + json "encoding/json" + easyjson "github.com/mailru/easyjson" + jlexer "github.com/mailru/easyjson/jlexer" + jwriter "github.com/mailru/easyjson/jwriter" +) + +// suppress unused package warning +var ( + _ *json.RawMessage + _ *jlexer.Lexer + _ *jwriter.Writer + _ easyjson.Marshaler +) + +func easyjsonBe091417DecodeGithubComContainersLibpodLibpod(in *jlexer.Lexer, out *podState) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "cgroupPath": + out.CgroupPath = string(in.String()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjsonBe091417EncodeGithubComContainersLibpodLibpod(out *jwriter.Writer, in podState) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"cgroupPath\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.CgroupPath)) + } + out.RawByte('}') +} + +// MarshalJSON supports json.Marshaler interface +func (v podState) MarshalJSON() ([]byte, error) { + w := jwriter.Writer{} + easyjsonBe091417EncodeGithubComContainersLibpodLibpod(&w, v) + return w.Buffer.BuildBytes(), w.Error +} + +// MarshalEasyJSON supports easyjson.Marshaler interface +func (v podState) MarshalEasyJSON(w *jwriter.Writer) { + easyjsonBe091417EncodeGithubComContainersLibpodLibpod(w, v) +} + +// UnmarshalJSON supports json.Unmarshaler interface +func (v *podState) UnmarshalJSON(data []byte) error { + r := jlexer.Lexer{Data: data} + easyjsonBe091417DecodeGithubComContainersLibpodLibpod(&r, v) + return r.Error() +} + +// UnmarshalEasyJSON supports easyjson.Unmarshaler interface +func (v *podState) UnmarshalEasyJSON(l *jlexer.Lexer) { + easyjsonBe091417DecodeGithubComContainersLibpodLibpod(l, v) +} +func easyjsonBe091417DecodeGithubComContainersLibpodLibpod1(in *jlexer.Lexer, out *PodInspectState) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "cgroupPath": + out.CgroupPath = string(in.String()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjsonBe091417EncodeGithubComContainersLibpodLibpod1(out *jwriter.Writer, in PodInspectState) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"cgroupPath\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.CgroupPath)) + } + out.RawByte('}') +} + +// MarshalJSON supports json.Marshaler interface +func (v PodInspectState) MarshalJSON() ([]byte, error) { + w := jwriter.Writer{} + easyjsonBe091417EncodeGithubComContainersLibpodLibpod1(&w, v) + return w.Buffer.BuildBytes(), w.Error +} + +// MarshalEasyJSON supports easyjson.Marshaler interface +func (v PodInspectState) MarshalEasyJSON(w *jwriter.Writer) { + easyjsonBe091417EncodeGithubComContainersLibpodLibpod1(w, v) +} + +// UnmarshalJSON supports json.Unmarshaler interface +func (v *PodInspectState) UnmarshalJSON(data []byte) error { + r := jlexer.Lexer{Data: data} + easyjsonBe091417DecodeGithubComContainersLibpodLibpod1(&r, v) + return r.Error() +} + +// UnmarshalEasyJSON supports easyjson.Unmarshaler interface +func (v *PodInspectState) UnmarshalEasyJSON(l *jlexer.Lexer) { + easyjsonBe091417DecodeGithubComContainersLibpodLibpod1(l, v) +} +func easyjsonBe091417DecodeGithubComContainersLibpodLibpod2(in *jlexer.Lexer, out *PodInspect) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "Config": + if in.IsNull() { + in.Skip() + out.Config = nil + } else { + if out.Config == nil { + out.Config = new(PodConfig) + } + (*out.Config).UnmarshalEasyJSON(in) + } + case "State": + if in.IsNull() { + in.Skip() + out.State = nil + } else { + if out.State == nil { + out.State = new(PodInspectState) + } + (*out.State).UnmarshalEasyJSON(in) + } + case "Containers": + if in.IsNull() { + in.Skip() + out.Containers = nil + } else { + in.Delim('[') + if out.Containers == nil { + if !in.IsDelim(']') { + out.Containers = make([]PodContainerInfo, 0, 2) + } else { + out.Containers = []PodContainerInfo{} + } + } else { + out.Containers = (out.Containers)[:0] + } + for !in.IsDelim(']') { + var v1 PodContainerInfo + (v1).UnmarshalEasyJSON(in) + out.Containers = append(out.Containers, v1) + in.WantComma() + } + in.Delim(']') + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjsonBe091417EncodeGithubComContainersLibpodLibpod2(out *jwriter.Writer, in PodInspect) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"Config\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + if in.Config == nil { + out.RawString("null") + } else { + (*in.Config).MarshalEasyJSON(out) + } + } + { + const prefix string = ",\"State\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + if in.State == nil { + out.RawString("null") + } else { + (*in.State).MarshalEasyJSON(out) + } + } + { + const prefix string = ",\"Containers\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + if in.Containers == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 { + out.RawString("null") + } else { + out.RawByte('[') + for v2, v3 := range in.Containers { + if v2 > 0 { + out.RawByte(',') + } + (v3).MarshalEasyJSON(out) + } + out.RawByte(']') + } + } + out.RawByte('}') +} + +// MarshalJSON supports json.Marshaler interface +func (v PodInspect) MarshalJSON() ([]byte, error) { + w := jwriter.Writer{} + easyjsonBe091417EncodeGithubComContainersLibpodLibpod2(&w, v) + return w.Buffer.BuildBytes(), w.Error +} + +// MarshalEasyJSON supports easyjson.Marshaler interface +func (v PodInspect) MarshalEasyJSON(w *jwriter.Writer) { + easyjsonBe091417EncodeGithubComContainersLibpodLibpod2(w, v) +} + +// UnmarshalJSON supports json.Unmarshaler interface +func (v *PodInspect) UnmarshalJSON(data []byte) error { + r := jlexer.Lexer{Data: data} + easyjsonBe091417DecodeGithubComContainersLibpodLibpod2(&r, v) + return r.Error() +} + +// UnmarshalEasyJSON supports easyjson.Unmarshaler interface +func (v *PodInspect) UnmarshalEasyJSON(l *jlexer.Lexer) { + easyjsonBe091417DecodeGithubComContainersLibpodLibpod2(l, v) +} +func easyjsonBe091417DecodeGithubComContainersLibpodLibpod3(in *jlexer.Lexer, out *PodContainerInfo) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "id": + out.ID = string(in.String()) + case "state": + out.State = string(in.String()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjsonBe091417EncodeGithubComContainersLibpodLibpod3(out *jwriter.Writer, in PodContainerInfo) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"id\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.ID)) + } + { + const prefix string = ",\"state\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.State)) + } + out.RawByte('}') +} + +// MarshalJSON supports json.Marshaler interface +func (v PodContainerInfo) MarshalJSON() ([]byte, error) { + w := jwriter.Writer{} + easyjsonBe091417EncodeGithubComContainersLibpodLibpod3(&w, v) + return w.Buffer.BuildBytes(), w.Error +} + +// MarshalEasyJSON supports easyjson.Marshaler interface +func (v PodContainerInfo) MarshalEasyJSON(w *jwriter.Writer) { + easyjsonBe091417EncodeGithubComContainersLibpodLibpod3(w, v) +} + +// UnmarshalJSON supports json.Unmarshaler interface +func (v *PodContainerInfo) UnmarshalJSON(data []byte) error { + r := jlexer.Lexer{Data: data} + easyjsonBe091417DecodeGithubComContainersLibpodLibpod3(&r, v) + return r.Error() +} + +// UnmarshalEasyJSON supports easyjson.Unmarshaler interface +func (v *PodContainerInfo) UnmarshalEasyJSON(l *jlexer.Lexer) { + easyjsonBe091417DecodeGithubComContainersLibpodLibpod3(l, v) +} +func easyjsonBe091417DecodeGithubComContainersLibpodLibpod4(in *jlexer.Lexer, out *PodConfig) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeString() + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "id": + out.ID = string(in.String()) + case "name": + out.Name = string(in.String()) + case "namespace": + out.Namespace = string(in.String()) + case "labels": + if in.IsNull() { + in.Skip() + } else { + in.Delim('{') + if !in.IsDelim('}') { + out.Labels = make(map[string]string) + } else { + out.Labels = nil + } + for !in.IsDelim('}') { + key := string(in.String()) + in.WantColon() + var v4 string + v4 = string(in.String()) + (out.Labels)[key] = v4 + in.WantComma() + } + in.Delim('}') + } + case "cgroupParent": + out.CgroupParent = string(in.String()) + case "usePodCgroup": + out.UsePodCgroup = bool(in.Bool()) + case "created": + if data := in.Raw(); in.Ok() { + in.AddError((out.CreatedTime).UnmarshalJSON(data)) + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjsonBe091417EncodeGithubComContainersLibpodLibpod4(out *jwriter.Writer, in PodConfig) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"id\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.ID)) + } + { + const prefix string = ",\"name\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Name)) + } + if in.Namespace != "" { + const prefix string = ",\"namespace\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.Namespace)) + } + { + const prefix string = ",\"labels\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + if in.Labels == nil && (out.Flags&jwriter.NilMapAsEmpty) == 0 { + out.RawString(`null`) + } else { + out.RawByte('{') + v5First := true + for v5Name, v5Value := range in.Labels { + if v5First { + v5First = false + } else { + out.RawByte(',') + } + out.String(string(v5Name)) + out.RawByte(':') + out.String(string(v5Value)) + } + out.RawByte('}') + } + } + { + const prefix string = ",\"cgroupParent\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.CgroupParent)) + } + { + const prefix string = ",\"usePodCgroup\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Bool(bool(in.UsePodCgroup)) + } + { + const prefix string = ",\"created\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.Raw((in.CreatedTime).MarshalJSON()) + } + out.RawByte('}') +} + +// MarshalJSON supports json.Marshaler interface +func (v PodConfig) MarshalJSON() ([]byte, error) { + w := jwriter.Writer{} + easyjsonBe091417EncodeGithubComContainersLibpodLibpod4(&w, v) + return w.Buffer.BuildBytes(), w.Error +} + +// MarshalEasyJSON supports easyjson.Marshaler interface +func (v PodConfig) MarshalEasyJSON(w *jwriter.Writer) { + easyjsonBe091417EncodeGithubComContainersLibpodLibpod4(w, v) +} + +// UnmarshalJSON supports json.Unmarshaler interface +func (v *PodConfig) UnmarshalJSON(data []byte) error { + r := jlexer.Lexer{Data: data} + easyjsonBe091417DecodeGithubComContainersLibpodLibpod4(&r, v) + return r.Error() +} + +// UnmarshalEasyJSON supports easyjson.Unmarshaler interface +func (v *PodConfig) UnmarshalEasyJSON(l *jlexer.Lexer) { + easyjsonBe091417DecodeGithubComContainersLibpodLibpod4(l, v) +} diff --git a/libpod/pod_ffjson.go b/libpod/pod_ffjson.go deleted file mode 100644 index 76781dbbd..000000000 --- a/libpod/pod_ffjson.go +++ /dev/null @@ -1,2681 +0,0 @@ -// Code generated by ffjson <https://github.com/pquerna/ffjson>. DO NOT EDIT. -// source: /home/pehunt/go/src/github.com/containers/libpod/libpod/pod.go - -package libpod - -import ( - "bytes" - "encoding/json" - "errors" - "fmt" - fflib "github.com/pquerna/ffjson/fflib/v1" -) - -// MarshalJSON marshal bytes to json - template -func (j *InfraContainerConfig) MarshalJSON() ([]byte, error) { - var buf fflib.Buffer - if j == nil { - buf.WriteString("null") - return buf.Bytes(), nil - } - err := j.MarshalJSONBuf(&buf) - if err != nil { - return nil, err - } - return buf.Bytes(), nil -} - -// MarshalJSONBuf marshal buff to json - template -func (j *InfraContainerConfig) MarshalJSONBuf(buf fflib.EncodingBuffer) error { - if j == nil { - buf.WriteString("null") - return nil - } - var err error - var obj []byte - _ = obj - _ = err - if j.HasInfraContainer { - buf.WriteString(`{"makeInfraContainer":true`) - } else { - buf.WriteString(`{"makeInfraContainer":false`) - } - buf.WriteByte('}') - return nil -} - -const ( - ffjtInfraContainerConfigbase = iota - ffjtInfraContainerConfignosuchkey - - ffjtInfraContainerConfigHasInfraContainer -) - -var ffjKeyInfraContainerConfigHasInfraContainer = []byte("makeInfraContainer") - -// UnmarshalJSON umarshall json - template of ffjson -func (j *InfraContainerConfig) UnmarshalJSON(input []byte) error { - fs := fflib.NewFFLexer(input) - return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) -} - -// UnmarshalJSONFFLexer fast json unmarshall - template ffjson -func (j *InfraContainerConfig) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { - var err error - currentKey := ffjtInfraContainerConfigbase - _ = currentKey - tok := fflib.FFTok_init - wantedTok := fflib.FFTok_init - -mainparse: - for { - tok = fs.Scan() - // println(fmt.Sprintf("debug: tok: %v state: %v", tok, state)) - if tok == fflib.FFTok_error { - goto tokerror - } - - switch state { - - case fflib.FFParse_map_start: - if tok != fflib.FFTok_left_bracket { - wantedTok = fflib.FFTok_left_bracket - goto wrongtokenerror - } - state = fflib.FFParse_want_key - continue - - case fflib.FFParse_after_value: - if tok == fflib.FFTok_comma { - state = fflib.FFParse_want_key - } else if tok == fflib.FFTok_right_bracket { - goto done - } else { - wantedTok = fflib.FFTok_comma - goto wrongtokenerror - } - - case fflib.FFParse_want_key: - // json {} ended. goto exit. woo. - if tok == fflib.FFTok_right_bracket { - goto done - } - if tok != fflib.FFTok_string { - wantedTok = fflib.FFTok_string - goto wrongtokenerror - } - - kn := fs.Output.Bytes() - if len(kn) <= 0 { - // "" case. hrm. - currentKey = ffjtInfraContainerConfignosuchkey - state = fflib.FFParse_want_colon - goto mainparse - } else { - switch kn[0] { - - case 'm': - - if bytes.Equal(ffjKeyInfraContainerConfigHasInfraContainer, kn) { - currentKey = ffjtInfraContainerConfigHasInfraContainer - state = fflib.FFParse_want_colon - goto mainparse - } - - } - - if fflib.EqualFoldRight(ffjKeyInfraContainerConfigHasInfraContainer, kn) { - currentKey = ffjtInfraContainerConfigHasInfraContainer - state = fflib.FFParse_want_colon - goto mainparse - } - - currentKey = ffjtInfraContainerConfignosuchkey - state = fflib.FFParse_want_colon - goto mainparse - } - - case fflib.FFParse_want_colon: - if tok != fflib.FFTok_colon { - wantedTok = fflib.FFTok_colon - goto wrongtokenerror - } - state = fflib.FFParse_want_value - continue - case fflib.FFParse_want_value: - - if tok == fflib.FFTok_left_brace || tok == fflib.FFTok_left_bracket || tok == fflib.FFTok_integer || tok == fflib.FFTok_double || tok == fflib.FFTok_string || tok == fflib.FFTok_bool || tok == fflib.FFTok_null { - switch currentKey { - - case ffjtInfraContainerConfigHasInfraContainer: - goto handle_HasInfraContainer - - case ffjtInfraContainerConfignosuchkey: - err = fs.SkipField(tok) - if err != nil { - return fs.WrapErr(err) - } - state = fflib.FFParse_after_value - goto mainparse - } - } else { - goto wantedvalue - } - } - } - -handle_HasInfraContainer: - - /* handler: j.HasInfraContainer type=bool kind=bool quoted=false*/ - - { - if tok != fflib.FFTok_bool && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for bool", tok)) - } - } - - { - if tok == fflib.FFTok_null { - - } else { - tmpb := fs.Output.Bytes() - - if bytes.Compare([]byte{'t', 'r', 'u', 'e'}, tmpb) == 0 { - - j.HasInfraContainer = true - - } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { - - j.HasInfraContainer = false - - } else { - err = errors.New("unexpected bytes for true/false value") - return fs.WrapErr(err) - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -wantedvalue: - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) -wrongtokenerror: - return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) -tokerror: - if fs.BigError != nil { - return fs.WrapErr(fs.BigError) - } - err = fs.Error.ToError() - if err != nil { - return fs.WrapErr(err) - } - panic("ffjson-generated: unreachable, please report bug.") -done: - - return nil -} - -// MarshalJSON marshal bytes to json - template -func (j *PodConfig) MarshalJSON() ([]byte, error) { - var buf fflib.Buffer - if j == nil { - buf.WriteString("null") - return buf.Bytes(), nil - } - err := j.MarshalJSONBuf(&buf) - if err != nil { - return nil, err - } - return buf.Bytes(), nil -} - -// MarshalJSONBuf marshal buff to json - template -func (j *PodConfig) MarshalJSONBuf(buf fflib.EncodingBuffer) error { - if j == nil { - buf.WriteString("null") - return nil - } - var err error - var obj []byte - _ = obj - _ = err - buf.WriteString(`{"id":`) - fflib.WriteJsonString(buf, string(j.ID)) - buf.WriteString(`,"name":`) - fflib.WriteJsonString(buf, string(j.Name)) - buf.WriteByte(',') - if len(j.Namespace) != 0 { - buf.WriteString(`"namespace":`) - fflib.WriteJsonString(buf, string(j.Namespace)) - buf.WriteByte(',') - } - if j.Labels == nil { - buf.WriteString(`"labels":null`) - } else { - buf.WriteString(`"labels":{ `) - for key, value := range j.Labels { - fflib.WriteJsonString(buf, key) - buf.WriteString(`:`) - fflib.WriteJsonString(buf, string(value)) - buf.WriteByte(',') - } - buf.Rewind(1) - buf.WriteByte('}') - } - buf.WriteString(`,"cgroupParent":`) - fflib.WriteJsonString(buf, string(j.CgroupParent)) - buf.WriteByte(',') - if j.UsePodCgroup != false { - if j.UsePodCgroup { - buf.WriteString(`"sharesCgroup":true`) - } else { - buf.WriteString(`"sharesCgroup":false`) - } - buf.WriteByte(',') - } - if j.UsePodPID != false { - if j.UsePodPID { - buf.WriteString(`"sharesPid":true`) - } else { - buf.WriteString(`"sharesPid":false`) - } - buf.WriteByte(',') - } - if j.UsePodIPC != false { - if j.UsePodIPC { - buf.WriteString(`"sharesIpc":true`) - } else { - buf.WriteString(`"sharesIpc":false`) - } - buf.WriteByte(',') - } - if j.UsePodNet != false { - if j.UsePodNet { - buf.WriteString(`"sharesNet":true`) - } else { - buf.WriteString(`"sharesNet":false`) - } - buf.WriteByte(',') - } - if j.UsePodMount != false { - if j.UsePodMount { - buf.WriteString(`"sharesMnt":true`) - } else { - buf.WriteString(`"sharesMnt":false`) - } - buf.WriteByte(',') - } - if j.UsePodUser != false { - if j.UsePodUser { - buf.WriteString(`"sharesUser":true`) - } else { - buf.WriteString(`"sharesUser":false`) - } - buf.WriteByte(',') - } - if j.UsePodUTS != false { - if j.UsePodUTS { - buf.WriteString(`"sharesUts":true`) - } else { - buf.WriteString(`"sharesUts":false`) - } - buf.WriteByte(',') - } - if j.InfraContainer != nil { - buf.WriteString(`"infraConfig":`) - - { - - err = j.InfraContainer.MarshalJSONBuf(buf) - if err != nil { - return err - } - - } - } else { - buf.WriteString(`"infraConfig":null`) - } - buf.WriteString(`,"created":`) - - { - - obj, err = j.CreatedTime.MarshalJSON() - if err != nil { - return err - } - buf.Write(obj) - - } - buf.WriteByte('}') - return nil -} - -const ( - ffjtPodConfigbase = iota - ffjtPodConfignosuchkey - - ffjtPodConfigID - - ffjtPodConfigName - - ffjtPodConfigNamespace - - ffjtPodConfigLabels - - ffjtPodConfigCgroupParent - - ffjtPodConfigUsePodCgroup - - ffjtPodConfigUsePodPID - - ffjtPodConfigUsePodIPC - - ffjtPodConfigUsePodNet - - ffjtPodConfigUsePodMount - - ffjtPodConfigUsePodUser - - ffjtPodConfigUsePodUTS - - ffjtPodConfigInfraContainer - - ffjtPodConfigCreatedTime -) - -var ffjKeyPodConfigID = []byte("id") - -var ffjKeyPodConfigName = []byte("name") - -var ffjKeyPodConfigNamespace = []byte("namespace") - -var ffjKeyPodConfigLabels = []byte("labels") - -var ffjKeyPodConfigCgroupParent = []byte("cgroupParent") - -var ffjKeyPodConfigUsePodCgroup = []byte("sharesCgroup") - -var ffjKeyPodConfigUsePodPID = []byte("sharesPid") - -var ffjKeyPodConfigUsePodIPC = []byte("sharesIpc") - -var ffjKeyPodConfigUsePodNet = []byte("sharesNet") - -var ffjKeyPodConfigUsePodMount = []byte("sharesMnt") - -var ffjKeyPodConfigUsePodUser = []byte("sharesUser") - -var ffjKeyPodConfigUsePodUTS = []byte("sharesUts") - -var ffjKeyPodConfigInfraContainer = []byte("infraConfig") - -var ffjKeyPodConfigCreatedTime = []byte("created") - -// UnmarshalJSON umarshall json - template of ffjson -func (j *PodConfig) UnmarshalJSON(input []byte) error { - fs := fflib.NewFFLexer(input) - return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) -} - -// UnmarshalJSONFFLexer fast json unmarshall - template ffjson -func (j *PodConfig) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { - var err error - currentKey := ffjtPodConfigbase - _ = currentKey - tok := fflib.FFTok_init - wantedTok := fflib.FFTok_init - -mainparse: - for { - tok = fs.Scan() - // println(fmt.Sprintf("debug: tok: %v state: %v", tok, state)) - if tok == fflib.FFTok_error { - goto tokerror - } - - switch state { - - case fflib.FFParse_map_start: - if tok != fflib.FFTok_left_bracket { - wantedTok = fflib.FFTok_left_bracket - goto wrongtokenerror - } - state = fflib.FFParse_want_key - continue - - case fflib.FFParse_after_value: - if tok == fflib.FFTok_comma { - state = fflib.FFParse_want_key - } else if tok == fflib.FFTok_right_bracket { - goto done - } else { - wantedTok = fflib.FFTok_comma - goto wrongtokenerror - } - - case fflib.FFParse_want_key: - // json {} ended. goto exit. woo. - if tok == fflib.FFTok_right_bracket { - goto done - } - if tok != fflib.FFTok_string { - wantedTok = fflib.FFTok_string - goto wrongtokenerror - } - - kn := fs.Output.Bytes() - if len(kn) <= 0 { - // "" case. hrm. - currentKey = ffjtPodConfignosuchkey - state = fflib.FFParse_want_colon - goto mainparse - } else { - switch kn[0] { - - case 'c': - - if bytes.Equal(ffjKeyPodConfigCgroupParent, kn) { - currentKey = ffjtPodConfigCgroupParent - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyPodConfigCreatedTime, kn) { - currentKey = ffjtPodConfigCreatedTime - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'i': - - if bytes.Equal(ffjKeyPodConfigID, kn) { - currentKey = ffjtPodConfigID - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyPodConfigInfraContainer, kn) { - currentKey = ffjtPodConfigInfraContainer - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'l': - - if bytes.Equal(ffjKeyPodConfigLabels, kn) { - currentKey = ffjtPodConfigLabels - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'n': - - if bytes.Equal(ffjKeyPodConfigName, kn) { - currentKey = ffjtPodConfigName - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyPodConfigNamespace, kn) { - currentKey = ffjtPodConfigNamespace - state = fflib.FFParse_want_colon - goto mainparse - } - - case 's': - - if bytes.Equal(ffjKeyPodConfigUsePodCgroup, kn) { - currentKey = ffjtPodConfigUsePodCgroup - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyPodConfigUsePodPID, kn) { - currentKey = ffjtPodConfigUsePodPID - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyPodConfigUsePodIPC, kn) { - currentKey = ffjtPodConfigUsePodIPC - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyPodConfigUsePodNet, kn) { - currentKey = ffjtPodConfigUsePodNet - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyPodConfigUsePodMount, kn) { - currentKey = ffjtPodConfigUsePodMount - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyPodConfigUsePodUser, kn) { - currentKey = ffjtPodConfigUsePodUser - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyPodConfigUsePodUTS, kn) { - currentKey = ffjtPodConfigUsePodUTS - state = fflib.FFParse_want_colon - goto mainparse - } - - } - - if fflib.SimpleLetterEqualFold(ffjKeyPodConfigCreatedTime, kn) { - currentKey = ffjtPodConfigCreatedTime - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyPodConfigInfraContainer, kn) { - currentKey = ffjtPodConfigInfraContainer - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyPodConfigUsePodUTS, kn) { - currentKey = ffjtPodConfigUsePodUTS - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyPodConfigUsePodUser, kn) { - currentKey = ffjtPodConfigUsePodUser - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyPodConfigUsePodMount, kn) { - currentKey = ffjtPodConfigUsePodMount - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyPodConfigUsePodNet, kn) { - currentKey = ffjtPodConfigUsePodNet - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyPodConfigUsePodIPC, kn) { - currentKey = ffjtPodConfigUsePodIPC - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyPodConfigUsePodPID, kn) { - currentKey = ffjtPodConfigUsePodPID - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyPodConfigUsePodCgroup, kn) { - currentKey = ffjtPodConfigUsePodCgroup - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyPodConfigCgroupParent, kn) { - currentKey = ffjtPodConfigCgroupParent - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyPodConfigLabels, kn) { - currentKey = ffjtPodConfigLabels - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyPodConfigNamespace, kn) { - currentKey = ffjtPodConfigNamespace - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyPodConfigName, kn) { - currentKey = ffjtPodConfigName - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyPodConfigID, kn) { - currentKey = ffjtPodConfigID - state = fflib.FFParse_want_colon - goto mainparse - } - - currentKey = ffjtPodConfignosuchkey - state = fflib.FFParse_want_colon - goto mainparse - } - - case fflib.FFParse_want_colon: - if tok != fflib.FFTok_colon { - wantedTok = fflib.FFTok_colon - goto wrongtokenerror - } - state = fflib.FFParse_want_value - continue - case fflib.FFParse_want_value: - - if tok == fflib.FFTok_left_brace || tok == fflib.FFTok_left_bracket || tok == fflib.FFTok_integer || tok == fflib.FFTok_double || tok == fflib.FFTok_string || tok == fflib.FFTok_bool || tok == fflib.FFTok_null { - switch currentKey { - - case ffjtPodConfigID: - goto handle_ID - - case ffjtPodConfigName: - goto handle_Name - - case ffjtPodConfigNamespace: - goto handle_Namespace - - case ffjtPodConfigLabels: - goto handle_Labels - - case ffjtPodConfigCgroupParent: - goto handle_CgroupParent - - case ffjtPodConfigUsePodCgroup: - goto handle_UsePodCgroup - - case ffjtPodConfigUsePodPID: - goto handle_UsePodPID - - case ffjtPodConfigUsePodIPC: - goto handle_UsePodIPC - - case ffjtPodConfigUsePodNet: - goto handle_UsePodNet - - case ffjtPodConfigUsePodMount: - goto handle_UsePodMount - - case ffjtPodConfigUsePodUser: - goto handle_UsePodUser - - case ffjtPodConfigUsePodUTS: - goto handle_UsePodUTS - - case ffjtPodConfigInfraContainer: - goto handle_InfraContainer - - case ffjtPodConfigCreatedTime: - goto handle_CreatedTime - - case ffjtPodConfignosuchkey: - err = fs.SkipField(tok) - if err != nil { - return fs.WrapErr(err) - } - state = fflib.FFParse_after_value - goto mainparse - } - } else { - goto wantedvalue - } - } - } - -handle_ID: - - /* handler: j.ID type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.ID = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_Name: - - /* handler: j.Name type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.Name = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_Namespace: - - /* handler: j.Namespace type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.Namespace = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_Labels: - - /* handler: j.Labels type=map[string]string kind=map quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_bracket && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.Labels = nil - } else { - - j.Labels = make(map[string]string, 0) - - wantVal := true - - for { - - var k string - - var tmpJLabels string - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_bracket { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: k type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - k = string(string(outBuf)) - - } - } - - // Expect ':' after key - tok = fs.Scan() - if tok != fflib.FFTok_colon { - return fs.WrapErr(fmt.Errorf("wanted colon token, but got token: %v", tok)) - } - - tok = fs.Scan() - /* handler: tmpJLabels type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - tmpJLabels = string(string(outBuf)) - - } - } - - j.Labels[k] = tmpJLabels - - wantVal = false - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_CgroupParent: - - /* handler: j.CgroupParent type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.CgroupParent = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_UsePodCgroup: - - /* handler: j.UsePodCgroup type=bool kind=bool quoted=false*/ - - { - if tok != fflib.FFTok_bool && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for bool", tok)) - } - } - - { - if tok == fflib.FFTok_null { - - } else { - tmpb := fs.Output.Bytes() - - if bytes.Compare([]byte{'t', 'r', 'u', 'e'}, tmpb) == 0 { - - j.UsePodCgroup = true - - } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { - - j.UsePodCgroup = false - - } else { - err = errors.New("unexpected bytes for true/false value") - return fs.WrapErr(err) - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_UsePodPID: - - /* handler: j.UsePodPID type=bool kind=bool quoted=false*/ - - { - if tok != fflib.FFTok_bool && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for bool", tok)) - } - } - - { - if tok == fflib.FFTok_null { - - } else { - tmpb := fs.Output.Bytes() - - if bytes.Compare([]byte{'t', 'r', 'u', 'e'}, tmpb) == 0 { - - j.UsePodPID = true - - } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { - - j.UsePodPID = false - - } else { - err = errors.New("unexpected bytes for true/false value") - return fs.WrapErr(err) - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_UsePodIPC: - - /* handler: j.UsePodIPC type=bool kind=bool quoted=false*/ - - { - if tok != fflib.FFTok_bool && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for bool", tok)) - } - } - - { - if tok == fflib.FFTok_null { - - } else { - tmpb := fs.Output.Bytes() - - if bytes.Compare([]byte{'t', 'r', 'u', 'e'}, tmpb) == 0 { - - j.UsePodIPC = true - - } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { - - j.UsePodIPC = false - - } else { - err = errors.New("unexpected bytes for true/false value") - return fs.WrapErr(err) - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_UsePodNet: - - /* handler: j.UsePodNet type=bool kind=bool quoted=false*/ - - { - if tok != fflib.FFTok_bool && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for bool", tok)) - } - } - - { - if tok == fflib.FFTok_null { - - } else { - tmpb := fs.Output.Bytes() - - if bytes.Compare([]byte{'t', 'r', 'u', 'e'}, tmpb) == 0 { - - j.UsePodNet = true - - } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { - - j.UsePodNet = false - - } else { - err = errors.New("unexpected bytes for true/false value") - return fs.WrapErr(err) - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_UsePodMount: - - /* handler: j.UsePodMount type=bool kind=bool quoted=false*/ - - { - if tok != fflib.FFTok_bool && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for bool", tok)) - } - } - - { - if tok == fflib.FFTok_null { - - } else { - tmpb := fs.Output.Bytes() - - if bytes.Compare([]byte{'t', 'r', 'u', 'e'}, tmpb) == 0 { - - j.UsePodMount = true - - } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { - - j.UsePodMount = false - - } else { - err = errors.New("unexpected bytes for true/false value") - return fs.WrapErr(err) - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_UsePodUser: - - /* handler: j.UsePodUser type=bool kind=bool quoted=false*/ - - { - if tok != fflib.FFTok_bool && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for bool", tok)) - } - } - - { - if tok == fflib.FFTok_null { - - } else { - tmpb := fs.Output.Bytes() - - if bytes.Compare([]byte{'t', 'r', 'u', 'e'}, tmpb) == 0 { - - j.UsePodUser = true - - } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { - - j.UsePodUser = false - - } else { - err = errors.New("unexpected bytes for true/false value") - return fs.WrapErr(err) - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_UsePodUTS: - - /* handler: j.UsePodUTS type=bool kind=bool quoted=false*/ - - { - if tok != fflib.FFTok_bool && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for bool", tok)) - } - } - - { - if tok == fflib.FFTok_null { - - } else { - tmpb := fs.Output.Bytes() - - if bytes.Compare([]byte{'t', 'r', 'u', 'e'}, tmpb) == 0 { - - j.UsePodUTS = true - - } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { - - j.UsePodUTS = false - - } else { - err = errors.New("unexpected bytes for true/false value") - return fs.WrapErr(err) - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_InfraContainer: - - /* handler: j.InfraContainer type=libpod.InfraContainerConfig kind=struct quoted=false*/ - - { - if tok == fflib.FFTok_null { - - j.InfraContainer = nil - - } else { - - if j.InfraContainer == nil { - j.InfraContainer = new(InfraContainerConfig) - } - - err = j.InfraContainer.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) - if err != nil { - return err - } - } - state = fflib.FFParse_after_value - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_CreatedTime: - - /* handler: j.CreatedTime type=time.Time kind=struct quoted=false*/ - - { - if tok == fflib.FFTok_null { - - } else { - - tbuf, err := fs.CaptureField(tok) - if err != nil { - return fs.WrapErr(err) - } - - err = j.CreatedTime.UnmarshalJSON(tbuf) - if err != nil { - return fs.WrapErr(err) - } - } - state = fflib.FFParse_after_value - } - - state = fflib.FFParse_after_value - goto mainparse - -wantedvalue: - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) -wrongtokenerror: - return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) -tokerror: - if fs.BigError != nil { - return fs.WrapErr(fs.BigError) - } - err = fs.Error.ToError() - if err != nil { - return fs.WrapErr(err) - } - panic("ffjson-generated: unreachable, please report bug.") -done: - - return nil -} - -// MarshalJSON marshal bytes to json - template -func (j *PodContainerInfo) MarshalJSON() ([]byte, error) { - var buf fflib.Buffer - if j == nil { - buf.WriteString("null") - return buf.Bytes(), nil - } - err := j.MarshalJSONBuf(&buf) - if err != nil { - return nil, err - } - return buf.Bytes(), nil -} - -// MarshalJSONBuf marshal buff to json - template -func (j *PodContainerInfo) MarshalJSONBuf(buf fflib.EncodingBuffer) error { - if j == nil { - buf.WriteString("null") - return nil - } - var err error - var obj []byte - _ = obj - _ = err - buf.WriteString(`{"id":`) - fflib.WriteJsonString(buf, string(j.ID)) - buf.WriteString(`,"state":`) - fflib.WriteJsonString(buf, string(j.State)) - buf.WriteByte('}') - return nil -} - -const ( - ffjtPodContainerInfobase = iota - ffjtPodContainerInfonosuchkey - - ffjtPodContainerInfoID - - ffjtPodContainerInfoState -) - -var ffjKeyPodContainerInfoID = []byte("id") - -var ffjKeyPodContainerInfoState = []byte("state") - -// UnmarshalJSON umarshall json - template of ffjson -func (j *PodContainerInfo) UnmarshalJSON(input []byte) error { - fs := fflib.NewFFLexer(input) - return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) -} - -// UnmarshalJSONFFLexer fast json unmarshall - template ffjson -func (j *PodContainerInfo) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { - var err error - currentKey := ffjtPodContainerInfobase - _ = currentKey - tok := fflib.FFTok_init - wantedTok := fflib.FFTok_init - -mainparse: - for { - tok = fs.Scan() - // println(fmt.Sprintf("debug: tok: %v state: %v", tok, state)) - if tok == fflib.FFTok_error { - goto tokerror - } - - switch state { - - case fflib.FFParse_map_start: - if tok != fflib.FFTok_left_bracket { - wantedTok = fflib.FFTok_left_bracket - goto wrongtokenerror - } - state = fflib.FFParse_want_key - continue - - case fflib.FFParse_after_value: - if tok == fflib.FFTok_comma { - state = fflib.FFParse_want_key - } else if tok == fflib.FFTok_right_bracket { - goto done - } else { - wantedTok = fflib.FFTok_comma - goto wrongtokenerror - } - - case fflib.FFParse_want_key: - // json {} ended. goto exit. woo. - if tok == fflib.FFTok_right_bracket { - goto done - } - if tok != fflib.FFTok_string { - wantedTok = fflib.FFTok_string - goto wrongtokenerror - } - - kn := fs.Output.Bytes() - if len(kn) <= 0 { - // "" case. hrm. - currentKey = ffjtPodContainerInfonosuchkey - state = fflib.FFParse_want_colon - goto mainparse - } else { - switch kn[0] { - - case 'i': - - if bytes.Equal(ffjKeyPodContainerInfoID, kn) { - currentKey = ffjtPodContainerInfoID - state = fflib.FFParse_want_colon - goto mainparse - } - - case 's': - - if bytes.Equal(ffjKeyPodContainerInfoState, kn) { - currentKey = ffjtPodContainerInfoState - state = fflib.FFParse_want_colon - goto mainparse - } - - } - - if fflib.EqualFoldRight(ffjKeyPodContainerInfoState, kn) { - currentKey = ffjtPodContainerInfoState - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyPodContainerInfoID, kn) { - currentKey = ffjtPodContainerInfoID - state = fflib.FFParse_want_colon - goto mainparse - } - - currentKey = ffjtPodContainerInfonosuchkey - state = fflib.FFParse_want_colon - goto mainparse - } - - case fflib.FFParse_want_colon: - if tok != fflib.FFTok_colon { - wantedTok = fflib.FFTok_colon - goto wrongtokenerror - } - state = fflib.FFParse_want_value - continue - case fflib.FFParse_want_value: - - if tok == fflib.FFTok_left_brace || tok == fflib.FFTok_left_bracket || tok == fflib.FFTok_integer || tok == fflib.FFTok_double || tok == fflib.FFTok_string || tok == fflib.FFTok_bool || tok == fflib.FFTok_null { - switch currentKey { - - case ffjtPodContainerInfoID: - goto handle_ID - - case ffjtPodContainerInfoState: - goto handle_State - - case ffjtPodContainerInfonosuchkey: - err = fs.SkipField(tok) - if err != nil { - return fs.WrapErr(err) - } - state = fflib.FFParse_after_value - goto mainparse - } - } else { - goto wantedvalue - } - } - } - -handle_ID: - - /* handler: j.ID type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.ID = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_State: - - /* handler: j.State type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.State = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -wantedvalue: - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) -wrongtokenerror: - return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) -tokerror: - if fs.BigError != nil { - return fs.WrapErr(fs.BigError) - } - err = fs.Error.ToError() - if err != nil { - return fs.WrapErr(err) - } - panic("ffjson-generated: unreachable, please report bug.") -done: - - return nil -} - -// MarshalJSON marshal bytes to json - template -func (j *PodContainerStats) MarshalJSON() ([]byte, error) { - var buf fflib.Buffer - if j == nil { - buf.WriteString("null") - return buf.Bytes(), nil - } - err := j.MarshalJSONBuf(&buf) - if err != nil { - return nil, err - } - return buf.Bytes(), nil -} - -// MarshalJSONBuf marshal buff to json - template -func (j *PodContainerStats) MarshalJSONBuf(buf fflib.EncodingBuffer) error { - if j == nil { - buf.WriteString("null") - return nil - } - var err error - var obj []byte - _ = obj - _ = err - if j.Pod != nil { - /* Struct fall back. type=libpod.Pod kind=struct */ - buf.WriteString(`{"Pod":`) - err = buf.Encode(j.Pod) - if err != nil { - return err - } - } else { - buf.WriteString(`{"Pod":null`) - } - buf.WriteString(`,"ContainerStats":`) - /* Falling back. type=map[string]*libpod.ContainerStats kind=map */ - err = buf.Encode(j.ContainerStats) - if err != nil { - return err - } - buf.WriteByte('}') - return nil -} - -const ( - ffjtPodContainerStatsbase = iota - ffjtPodContainerStatsnosuchkey - - ffjtPodContainerStatsPod - - ffjtPodContainerStatsContainerStats -) - -var ffjKeyPodContainerStatsPod = []byte("Pod") - -var ffjKeyPodContainerStatsContainerStats = []byte("ContainerStats") - -// UnmarshalJSON umarshall json - template of ffjson -func (j *PodContainerStats) UnmarshalJSON(input []byte) error { - fs := fflib.NewFFLexer(input) - return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) -} - -// UnmarshalJSONFFLexer fast json unmarshall - template ffjson -func (j *PodContainerStats) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { - var err error - currentKey := ffjtPodContainerStatsbase - _ = currentKey - tok := fflib.FFTok_init - wantedTok := fflib.FFTok_init - -mainparse: - for { - tok = fs.Scan() - // println(fmt.Sprintf("debug: tok: %v state: %v", tok, state)) - if tok == fflib.FFTok_error { - goto tokerror - } - - switch state { - - case fflib.FFParse_map_start: - if tok != fflib.FFTok_left_bracket { - wantedTok = fflib.FFTok_left_bracket - goto wrongtokenerror - } - state = fflib.FFParse_want_key - continue - - case fflib.FFParse_after_value: - if tok == fflib.FFTok_comma { - state = fflib.FFParse_want_key - } else if tok == fflib.FFTok_right_bracket { - goto done - } else { - wantedTok = fflib.FFTok_comma - goto wrongtokenerror - } - - case fflib.FFParse_want_key: - // json {} ended. goto exit. woo. - if tok == fflib.FFTok_right_bracket { - goto done - } - if tok != fflib.FFTok_string { - wantedTok = fflib.FFTok_string - goto wrongtokenerror - } - - kn := fs.Output.Bytes() - if len(kn) <= 0 { - // "" case. hrm. - currentKey = ffjtPodContainerStatsnosuchkey - state = fflib.FFParse_want_colon - goto mainparse - } else { - switch kn[0] { - - case 'C': - - if bytes.Equal(ffjKeyPodContainerStatsContainerStats, kn) { - currentKey = ffjtPodContainerStatsContainerStats - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'P': - - if bytes.Equal(ffjKeyPodContainerStatsPod, kn) { - currentKey = ffjtPodContainerStatsPod - state = fflib.FFParse_want_colon - goto mainparse - } - - } - - if fflib.EqualFoldRight(ffjKeyPodContainerStatsContainerStats, kn) { - currentKey = ffjtPodContainerStatsContainerStats - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyPodContainerStatsPod, kn) { - currentKey = ffjtPodContainerStatsPod - state = fflib.FFParse_want_colon - goto mainparse - } - - currentKey = ffjtPodContainerStatsnosuchkey - state = fflib.FFParse_want_colon - goto mainparse - } - - case fflib.FFParse_want_colon: - if tok != fflib.FFTok_colon { - wantedTok = fflib.FFTok_colon - goto wrongtokenerror - } - state = fflib.FFParse_want_value - continue - case fflib.FFParse_want_value: - - if tok == fflib.FFTok_left_brace || tok == fflib.FFTok_left_bracket || tok == fflib.FFTok_integer || tok == fflib.FFTok_double || tok == fflib.FFTok_string || tok == fflib.FFTok_bool || tok == fflib.FFTok_null { - switch currentKey { - - case ffjtPodContainerStatsPod: - goto handle_Pod - - case ffjtPodContainerStatsContainerStats: - goto handle_ContainerStats - - case ffjtPodContainerStatsnosuchkey: - err = fs.SkipField(tok) - if err != nil { - return fs.WrapErr(err) - } - state = fflib.FFParse_after_value - goto mainparse - } - } else { - goto wantedvalue - } - } - } - -handle_Pod: - - /* handler: j.Pod type=libpod.Pod kind=struct quoted=false*/ - - { - /* Falling back. type=libpod.Pod kind=struct */ - tbuf, err := fs.CaptureField(tok) - if err != nil { - return fs.WrapErr(err) - } - - err = json.Unmarshal(tbuf, &j.Pod) - if err != nil { - return fs.WrapErr(err) - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_ContainerStats: - - /* handler: j.ContainerStats type=map[string]*libpod.ContainerStats kind=map quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_bracket && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.ContainerStats = nil - } else { - - j.ContainerStats = make(map[string]*ContainerStats, 0) - - wantVal := true - - for { - - var k string - - var tmpJContainerStats *ContainerStats - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_bracket { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: k type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - k = string(string(outBuf)) - - } - } - - // Expect ':' after key - tok = fs.Scan() - if tok != fflib.FFTok_colon { - return fs.WrapErr(fmt.Errorf("wanted colon token, but got token: %v", tok)) - } - - tok = fs.Scan() - /* handler: tmpJContainerStats type=*libpod.ContainerStats kind=ptr quoted=false*/ - - { - - if tok == fflib.FFTok_null { - tmpJContainerStats = nil - } else { - if tmpJContainerStats == nil { - tmpJContainerStats = new(ContainerStats) - } - - /* handler: tmpJContainerStats type=libpod.ContainerStats kind=struct quoted=false*/ - - { - /* Falling back. type=libpod.ContainerStats kind=struct */ - tbuf, err := fs.CaptureField(tok) - if err != nil { - return fs.WrapErr(err) - } - - err = json.Unmarshal(tbuf, &tmpJContainerStats) - if err != nil { - return fs.WrapErr(err) - } - } - - } - } - - j.ContainerStats[k] = tmpJContainerStats - - wantVal = false - } - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -wantedvalue: - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) -wrongtokenerror: - return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) -tokerror: - if fs.BigError != nil { - return fs.WrapErr(fs.BigError) - } - err = fs.Error.ToError() - if err != nil { - return fs.WrapErr(err) - } - panic("ffjson-generated: unreachable, please report bug.") -done: - - return nil -} - -// MarshalJSON marshal bytes to json - template -func (j *PodInspect) MarshalJSON() ([]byte, error) { - var buf fflib.Buffer - if j == nil { - buf.WriteString("null") - return buf.Bytes(), nil - } - err := j.MarshalJSONBuf(&buf) - if err != nil { - return nil, err - } - return buf.Bytes(), nil -} - -// MarshalJSONBuf marshal buff to json - template -func (j *PodInspect) MarshalJSONBuf(buf fflib.EncodingBuffer) error { - if j == nil { - buf.WriteString("null") - return nil - } - var err error - var obj []byte - _ = obj - _ = err - if j.Config != nil { - buf.WriteString(`{"Config":`) - - { - - err = j.Config.MarshalJSONBuf(buf) - if err != nil { - return err - } - - } - } else { - buf.WriteString(`{"Config":null`) - } - if j.State != nil { - buf.WriteString(`,"State":`) - - { - - err = j.State.MarshalJSONBuf(buf) - if err != nil { - return err - } - - } - } else { - buf.WriteString(`,"State":null`) - } - buf.WriteString(`,"Containers":`) - if j.Containers != nil { - buf.WriteString(`[`) - for i, v := range j.Containers { - if i != 0 { - buf.WriteString(`,`) - } - - { - - err = v.MarshalJSONBuf(buf) - if err != nil { - return err - } - - } - } - buf.WriteString(`]`) - } else { - buf.WriteString(`null`) - } - buf.WriteByte('}') - return nil -} - -const ( - ffjtPodInspectbase = iota - ffjtPodInspectnosuchkey - - ffjtPodInspectConfig - - ffjtPodInspectState - - ffjtPodInspectContainers -) - -var ffjKeyPodInspectConfig = []byte("Config") - -var ffjKeyPodInspectState = []byte("State") - -var ffjKeyPodInspectContainers = []byte("Containers") - -// UnmarshalJSON umarshall json - template of ffjson -func (j *PodInspect) UnmarshalJSON(input []byte) error { - fs := fflib.NewFFLexer(input) - return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) -} - -// UnmarshalJSONFFLexer fast json unmarshall - template ffjson -func (j *PodInspect) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { - var err error - currentKey := ffjtPodInspectbase - _ = currentKey - tok := fflib.FFTok_init - wantedTok := fflib.FFTok_init - -mainparse: - for { - tok = fs.Scan() - // println(fmt.Sprintf("debug: tok: %v state: %v", tok, state)) - if tok == fflib.FFTok_error { - goto tokerror - } - - switch state { - - case fflib.FFParse_map_start: - if tok != fflib.FFTok_left_bracket { - wantedTok = fflib.FFTok_left_bracket - goto wrongtokenerror - } - state = fflib.FFParse_want_key - continue - - case fflib.FFParse_after_value: - if tok == fflib.FFTok_comma { - state = fflib.FFParse_want_key - } else if tok == fflib.FFTok_right_bracket { - goto done - } else { - wantedTok = fflib.FFTok_comma - goto wrongtokenerror - } - - case fflib.FFParse_want_key: - // json {} ended. goto exit. woo. - if tok == fflib.FFTok_right_bracket { - goto done - } - if tok != fflib.FFTok_string { - wantedTok = fflib.FFTok_string - goto wrongtokenerror - } - - kn := fs.Output.Bytes() - if len(kn) <= 0 { - // "" case. hrm. - currentKey = ffjtPodInspectnosuchkey - state = fflib.FFParse_want_colon - goto mainparse - } else { - switch kn[0] { - - case 'C': - - if bytes.Equal(ffjKeyPodInspectConfig, kn) { - currentKey = ffjtPodInspectConfig - state = fflib.FFParse_want_colon - goto mainparse - - } else if bytes.Equal(ffjKeyPodInspectContainers, kn) { - currentKey = ffjtPodInspectContainers - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'S': - - if bytes.Equal(ffjKeyPodInspectState, kn) { - currentKey = ffjtPodInspectState - state = fflib.FFParse_want_colon - goto mainparse - } - - } - - if fflib.EqualFoldRight(ffjKeyPodInspectContainers, kn) { - currentKey = ffjtPodInspectContainers - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.EqualFoldRight(ffjKeyPodInspectState, kn) { - currentKey = ffjtPodInspectState - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyPodInspectConfig, kn) { - currentKey = ffjtPodInspectConfig - state = fflib.FFParse_want_colon - goto mainparse - } - - currentKey = ffjtPodInspectnosuchkey - state = fflib.FFParse_want_colon - goto mainparse - } - - case fflib.FFParse_want_colon: - if tok != fflib.FFTok_colon { - wantedTok = fflib.FFTok_colon - goto wrongtokenerror - } - state = fflib.FFParse_want_value - continue - case fflib.FFParse_want_value: - - if tok == fflib.FFTok_left_brace || tok == fflib.FFTok_left_bracket || tok == fflib.FFTok_integer || tok == fflib.FFTok_double || tok == fflib.FFTok_string || tok == fflib.FFTok_bool || tok == fflib.FFTok_null { - switch currentKey { - - case ffjtPodInspectConfig: - goto handle_Config - - case ffjtPodInspectState: - goto handle_State - - case ffjtPodInspectContainers: - goto handle_Containers - - case ffjtPodInspectnosuchkey: - err = fs.SkipField(tok) - if err != nil { - return fs.WrapErr(err) - } - state = fflib.FFParse_after_value - goto mainparse - } - } else { - goto wantedvalue - } - } - } - -handle_Config: - - /* handler: j.Config type=libpod.PodConfig kind=struct quoted=false*/ - - { - if tok == fflib.FFTok_null { - - j.Config = nil - - } else { - - if j.Config == nil { - j.Config = new(PodConfig) - } - - err = j.Config.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) - if err != nil { - return err - } - } - state = fflib.FFParse_after_value - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_State: - - /* handler: j.State type=libpod.PodInspectState kind=struct quoted=false*/ - - { - if tok == fflib.FFTok_null { - - j.State = nil - - } else { - - if j.State == nil { - j.State = new(PodInspectState) - } - - err = j.State.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) - if err != nil { - return err - } - } - state = fflib.FFParse_after_value - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_Containers: - - /* handler: j.Containers type=[]libpod.PodContainerInfo kind=slice quoted=false*/ - - { - - { - if tok != fflib.FFTok_left_brace && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) - } - } - - if tok == fflib.FFTok_null { - j.Containers = nil - } else { - - j.Containers = []PodContainerInfo{} - - wantVal := true - - for { - - var tmpJContainers PodContainerInfo - - tok = fs.Scan() - if tok == fflib.FFTok_error { - goto tokerror - } - if tok == fflib.FFTok_right_brace { - break - } - - if tok == fflib.FFTok_comma { - if wantVal == true { - // TODO(pquerna): this isn't an ideal error message, this handles - // things like [,,,] as an array value. - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) - } - continue - } else { - wantVal = true - } - - /* handler: tmpJContainers type=libpod.PodContainerInfo kind=struct quoted=false*/ - - { - if tok == fflib.FFTok_null { - - } else { - - err = tmpJContainers.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) - if err != nil { - return err - } - } - state = fflib.FFParse_after_value - } - - j.Containers = append(j.Containers, tmpJContainers) - - wantVal = false - } - } - } - - state = fflib.FFParse_after_value - goto mainparse - -wantedvalue: - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) -wrongtokenerror: - return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) -tokerror: - if fs.BigError != nil { - return fs.WrapErr(fs.BigError) - } - err = fs.Error.ToError() - if err != nil { - return fs.WrapErr(err) - } - panic("ffjson-generated: unreachable, please report bug.") -done: - - return nil -} - -// MarshalJSON marshal bytes to json - template -func (j *PodInspectState) MarshalJSON() ([]byte, error) { - var buf fflib.Buffer - if j == nil { - buf.WriteString("null") - return buf.Bytes(), nil - } - err := j.MarshalJSONBuf(&buf) - if err != nil { - return nil, err - } - return buf.Bytes(), nil -} - -// MarshalJSONBuf marshal buff to json - template -func (j *PodInspectState) MarshalJSONBuf(buf fflib.EncodingBuffer) error { - if j == nil { - buf.WriteString("null") - return nil - } - var err error - var obj []byte - _ = obj - _ = err - buf.WriteString(`{"cgroupPath":`) - fflib.WriteJsonString(buf, string(j.CgroupPath)) - buf.WriteString(`,"infraContainerID":`) - fflib.WriteJsonString(buf, string(j.InfraContainerID)) - buf.WriteByte('}') - return nil -} - -const ( - ffjtPodInspectStatebase = iota - ffjtPodInspectStatenosuchkey - - ffjtPodInspectStateCgroupPath - - ffjtPodInspectStateInfraContainerID -) - -var ffjKeyPodInspectStateCgroupPath = []byte("cgroupPath") - -var ffjKeyPodInspectStateInfraContainerID = []byte("infraContainerID") - -// UnmarshalJSON umarshall json - template of ffjson -func (j *PodInspectState) UnmarshalJSON(input []byte) error { - fs := fflib.NewFFLexer(input) - return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) -} - -// UnmarshalJSONFFLexer fast json unmarshall - template ffjson -func (j *PodInspectState) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { - var err error - currentKey := ffjtPodInspectStatebase - _ = currentKey - tok := fflib.FFTok_init - wantedTok := fflib.FFTok_init - -mainparse: - for { - tok = fs.Scan() - // println(fmt.Sprintf("debug: tok: %v state: %v", tok, state)) - if tok == fflib.FFTok_error { - goto tokerror - } - - switch state { - - case fflib.FFParse_map_start: - if tok != fflib.FFTok_left_bracket { - wantedTok = fflib.FFTok_left_bracket - goto wrongtokenerror - } - state = fflib.FFParse_want_key - continue - - case fflib.FFParse_after_value: - if tok == fflib.FFTok_comma { - state = fflib.FFParse_want_key - } else if tok == fflib.FFTok_right_bracket { - goto done - } else { - wantedTok = fflib.FFTok_comma - goto wrongtokenerror - } - - case fflib.FFParse_want_key: - // json {} ended. goto exit. woo. - if tok == fflib.FFTok_right_bracket { - goto done - } - if tok != fflib.FFTok_string { - wantedTok = fflib.FFTok_string - goto wrongtokenerror - } - - kn := fs.Output.Bytes() - if len(kn) <= 0 { - // "" case. hrm. - currentKey = ffjtPodInspectStatenosuchkey - state = fflib.FFParse_want_colon - goto mainparse - } else { - switch kn[0] { - - case 'c': - - if bytes.Equal(ffjKeyPodInspectStateCgroupPath, kn) { - currentKey = ffjtPodInspectStateCgroupPath - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'i': - - if bytes.Equal(ffjKeyPodInspectStateInfraContainerID, kn) { - currentKey = ffjtPodInspectStateInfraContainerID - state = fflib.FFParse_want_colon - goto mainparse - } - - } - - if fflib.SimpleLetterEqualFold(ffjKeyPodInspectStateInfraContainerID, kn) { - currentKey = ffjtPodInspectStateInfraContainerID - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeyPodInspectStateCgroupPath, kn) { - currentKey = ffjtPodInspectStateCgroupPath - state = fflib.FFParse_want_colon - goto mainparse - } - - currentKey = ffjtPodInspectStatenosuchkey - state = fflib.FFParse_want_colon - goto mainparse - } - - case fflib.FFParse_want_colon: - if tok != fflib.FFTok_colon { - wantedTok = fflib.FFTok_colon - goto wrongtokenerror - } - state = fflib.FFParse_want_value - continue - case fflib.FFParse_want_value: - - if tok == fflib.FFTok_left_brace || tok == fflib.FFTok_left_bracket || tok == fflib.FFTok_integer || tok == fflib.FFTok_double || tok == fflib.FFTok_string || tok == fflib.FFTok_bool || tok == fflib.FFTok_null { - switch currentKey { - - case ffjtPodInspectStateCgroupPath: - goto handle_CgroupPath - - case ffjtPodInspectStateInfraContainerID: - goto handle_InfraContainerID - - case ffjtPodInspectStatenosuchkey: - err = fs.SkipField(tok) - if err != nil { - return fs.WrapErr(err) - } - state = fflib.FFParse_after_value - goto mainparse - } - } else { - goto wantedvalue - } - } - } - -handle_CgroupPath: - - /* handler: j.CgroupPath type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.CgroupPath = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_InfraContainerID: - - /* handler: j.InfraContainerID type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.InfraContainerID = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -wantedvalue: - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) -wrongtokenerror: - return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) -tokerror: - if fs.BigError != nil { - return fs.WrapErr(fs.BigError) - } - err = fs.Error.ToError() - if err != nil { - return fs.WrapErr(err) - } - panic("ffjson-generated: unreachable, please report bug.") -done: - - return nil -} - -// MarshalJSON marshal bytes to json - template -func (j *podState) MarshalJSON() ([]byte, error) { - var buf fflib.Buffer - if j == nil { - buf.WriteString("null") - return buf.Bytes(), nil - } - err := j.MarshalJSONBuf(&buf) - if err != nil { - return nil, err - } - return buf.Bytes(), nil -} - -// MarshalJSONBuf marshal buff to json - template -func (j *podState) MarshalJSONBuf(buf fflib.EncodingBuffer) error { - if j == nil { - buf.WriteString("null") - return nil - } - var err error - var obj []byte - _ = obj - _ = err - buf.WriteString(`{"cgroupPath":`) - fflib.WriteJsonString(buf, string(j.CgroupPath)) - buf.WriteString(`,"InfraContainerID":`) - fflib.WriteJsonString(buf, string(j.InfraContainerID)) - buf.WriteByte('}') - return nil -} - -const ( - ffjtpodStatebase = iota - ffjtpodStatenosuchkey - - ffjtpodStateCgroupPath - - ffjtpodStateInfraContainerID -) - -var ffjKeypodStateCgroupPath = []byte("cgroupPath") - -var ffjKeypodStateInfraContainerID = []byte("InfraContainerID") - -// UnmarshalJSON umarshall json - template of ffjson -func (j *podState) UnmarshalJSON(input []byte) error { - fs := fflib.NewFFLexer(input) - return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) -} - -// UnmarshalJSONFFLexer fast json unmarshall - template ffjson -func (j *podState) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { - var err error - currentKey := ffjtpodStatebase - _ = currentKey - tok := fflib.FFTok_init - wantedTok := fflib.FFTok_init - -mainparse: - for { - tok = fs.Scan() - // println(fmt.Sprintf("debug: tok: %v state: %v", tok, state)) - if tok == fflib.FFTok_error { - goto tokerror - } - - switch state { - - case fflib.FFParse_map_start: - if tok != fflib.FFTok_left_bracket { - wantedTok = fflib.FFTok_left_bracket - goto wrongtokenerror - } - state = fflib.FFParse_want_key - continue - - case fflib.FFParse_after_value: - if tok == fflib.FFTok_comma { - state = fflib.FFParse_want_key - } else if tok == fflib.FFTok_right_bracket { - goto done - } else { - wantedTok = fflib.FFTok_comma - goto wrongtokenerror - } - - case fflib.FFParse_want_key: - // json {} ended. goto exit. woo. - if tok == fflib.FFTok_right_bracket { - goto done - } - if tok != fflib.FFTok_string { - wantedTok = fflib.FFTok_string - goto wrongtokenerror - } - - kn := fs.Output.Bytes() - if len(kn) <= 0 { - // "" case. hrm. - currentKey = ffjtpodStatenosuchkey - state = fflib.FFParse_want_colon - goto mainparse - } else { - switch kn[0] { - - case 'I': - - if bytes.Equal(ffjKeypodStateInfraContainerID, kn) { - currentKey = ffjtpodStateInfraContainerID - state = fflib.FFParse_want_colon - goto mainparse - } - - case 'c': - - if bytes.Equal(ffjKeypodStateCgroupPath, kn) { - currentKey = ffjtpodStateCgroupPath - state = fflib.FFParse_want_colon - goto mainparse - } - - } - - if fflib.SimpleLetterEqualFold(ffjKeypodStateInfraContainerID, kn) { - currentKey = ffjtpodStateInfraContainerID - state = fflib.FFParse_want_colon - goto mainparse - } - - if fflib.SimpleLetterEqualFold(ffjKeypodStateCgroupPath, kn) { - currentKey = ffjtpodStateCgroupPath - state = fflib.FFParse_want_colon - goto mainparse - } - - currentKey = ffjtpodStatenosuchkey - state = fflib.FFParse_want_colon - goto mainparse - } - - case fflib.FFParse_want_colon: - if tok != fflib.FFTok_colon { - wantedTok = fflib.FFTok_colon - goto wrongtokenerror - } - state = fflib.FFParse_want_value - continue - case fflib.FFParse_want_value: - - if tok == fflib.FFTok_left_brace || tok == fflib.FFTok_left_bracket || tok == fflib.FFTok_integer || tok == fflib.FFTok_double || tok == fflib.FFTok_string || tok == fflib.FFTok_bool || tok == fflib.FFTok_null { - switch currentKey { - - case ffjtpodStateCgroupPath: - goto handle_CgroupPath - - case ffjtpodStateInfraContainerID: - goto handle_InfraContainerID - - case ffjtpodStatenosuchkey: - err = fs.SkipField(tok) - if err != nil { - return fs.WrapErr(err) - } - state = fflib.FFParse_after_value - goto mainparse - } - } else { - goto wantedvalue - } - } - } - -handle_CgroupPath: - - /* handler: j.CgroupPath type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.CgroupPath = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -handle_InfraContainerID: - - /* handler: j.InfraContainerID type=string kind=string quoted=false*/ - - { - - { - if tok != fflib.FFTok_string && tok != fflib.FFTok_null { - return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) - } - } - - if tok == fflib.FFTok_null { - - } else { - - outBuf := fs.Output.Bytes() - - j.InfraContainerID = string(string(outBuf)) - - } - } - - state = fflib.FFParse_after_value - goto mainparse - -wantedvalue: - return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) -wrongtokenerror: - return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) -tokerror: - if fs.BigError != nil { - return fs.WrapErr(fs.BigError) - } - err = fs.Error.ToError() - if err != nil { - return fs.WrapErr(err) - } - panic("ffjson-generated: unreachable, please report bug.") -done: - - return nil -} |