// Code generated by ffjson . DO NOT EDIT. // source: 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 *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)) if j.UsePodCgroup { buf.WriteString(`,"usePodCgroup":true`) } else { buf.WriteString(`,"usePodCgroup":false`) } 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 ffjtPodConfigCreatedTime ) var ffjKeyPodConfigID = []byte("id") var ffjKeyPodConfigName = []byte("name") var ffjKeyPodConfigNamespace = []byte("namespace") var ffjKeyPodConfigLabels = []byte("labels") var ffjKeyPodConfigCgroupParent = []byte("cgroupParent") var ffjKeyPodConfigUsePodCgroup = []byte("usePodCgroup") 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 } 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 'u': if bytes.Equal(ffjKeyPodConfigUsePodCgroup, kn) { currentKey = ffjtPodConfigUsePodCgroup state = fflib.FFParse_want_colon goto mainparse } } if fflib.SimpleLetterEqualFold(ffjKeyPodConfigCreatedTime, kn) { currentKey = ffjtPodConfigCreatedTime 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 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_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.WriteByte('}') return nil } const ( ffjtPodInspectStatebase = iota ffjtPodInspectStatenosuchkey ffjtPodInspectStateCgroupPath ) var ffjKeyPodInspectStateCgroupPath = []byte("cgroupPath") // 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 } } 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 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 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.WriteByte('}') return nil } const ( ffjtpodStatebase = iota ffjtpodStatenosuchkey ffjtpodStateCgroupPath ) var ffjKeypodStateCgroupPath = []byte("cgroupPath") // 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 'c': if bytes.Equal(ffjKeypodStateCgroupPath, kn) { currentKey = ffjtpodStateCgroupPath 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 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 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 }