1195 lines
24 KiB
Go
1195 lines
24 KiB
Go
|
// Code generated by ffjson <https://github.com/pquerna/ffjson>. DO NOT EDIT.
|
||
|
// source: containers.go
|
||
|
|
||
|
package storage
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"encoding/json"
|
||
|
"fmt"
|
||
|
"github.com/opencontainers/go-digest"
|
||
|
fflib "github.com/pquerna/ffjson/fflib/v1"
|
||
|
)
|
||
|
|
||
|
// MarshalJSON marshal bytes to json - template
|
||
|
func (j *Container) 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 *Container) 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.WriteByte(',')
|
||
|
if len(j.Names) != 0 {
|
||
|
buf.WriteString(`"names":`)
|
||
|
if j.Names != nil {
|
||
|
buf.WriteString(`[`)
|
||
|
for i, v := range j.Names {
|
||
|
if i != 0 {
|
||
|
buf.WriteString(`,`)
|
||
|
}
|
||
|
fflib.WriteJsonString(buf, string(v))
|
||
|
}
|
||
|
buf.WriteString(`]`)
|
||
|
} else {
|
||
|
buf.WriteString(`null`)
|
||
|
}
|
||
|
buf.WriteByte(',')
|
||
|
}
|
||
|
buf.WriteString(`"image":`)
|
||
|
fflib.WriteJsonString(buf, string(j.ImageID))
|
||
|
buf.WriteString(`,"layer":`)
|
||
|
fflib.WriteJsonString(buf, string(j.LayerID))
|
||
|
buf.WriteByte(',')
|
||
|
if len(j.Metadata) != 0 {
|
||
|
buf.WriteString(`"metadata":`)
|
||
|
fflib.WriteJsonString(buf, string(j.Metadata))
|
||
|
buf.WriteByte(',')
|
||
|
}
|
||
|
if len(j.BigDataNames) != 0 {
|
||
|
buf.WriteString(`"big-data-names":`)
|
||
|
if j.BigDataNames != nil {
|
||
|
buf.WriteString(`[`)
|
||
|
for i, v := range j.BigDataNames {
|
||
|
if i != 0 {
|
||
|
buf.WriteString(`,`)
|
||
|
}
|
||
|
fflib.WriteJsonString(buf, string(v))
|
||
|
}
|
||
|
buf.WriteString(`]`)
|
||
|
} else {
|
||
|
buf.WriteString(`null`)
|
||
|
}
|
||
|
buf.WriteByte(',')
|
||
|
}
|
||
|
if len(j.BigDataSizes) != 0 {
|
||
|
if j.BigDataSizes == nil {
|
||
|
buf.WriteString(`"big-data-sizes":null`)
|
||
|
} else {
|
||
|
buf.WriteString(`"big-data-sizes":{ `)
|
||
|
for key, value := range j.BigDataSizes {
|
||
|
fflib.WriteJsonString(buf, key)
|
||
|
buf.WriteString(`:`)
|
||
|
fflib.FormatBits2(buf, uint64(value), 10, value < 0)
|
||
|
buf.WriteByte(',')
|
||
|
}
|
||
|
buf.Rewind(1)
|
||
|
buf.WriteByte('}')
|
||
|
}
|
||
|
buf.WriteByte(',')
|
||
|
}
|
||
|
if len(j.BigDataDigests) != 0 {
|
||
|
if j.BigDataDigests == nil {
|
||
|
buf.WriteString(`"big-data-digests":null`)
|
||
|
} else {
|
||
|
buf.WriteString(`"big-data-digests":{ `)
|
||
|
for key, value := range j.BigDataDigests {
|
||
|
fflib.WriteJsonString(buf, key)
|
||
|
buf.WriteString(`:`)
|
||
|
fflib.WriteJsonString(buf, string(value))
|
||
|
buf.WriteByte(',')
|
||
|
}
|
||
|
buf.Rewind(1)
|
||
|
buf.WriteByte('}')
|
||
|
}
|
||
|
buf.WriteByte(',')
|
||
|
}
|
||
|
if true {
|
||
|
buf.WriteString(`"created":`)
|
||
|
|
||
|
{
|
||
|
|
||
|
obj, err = j.Created.MarshalJSON()
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
buf.Write(obj)
|
||
|
|
||
|
}
|
||
|
buf.WriteByte(',')
|
||
|
}
|
||
|
if len(j.Flags) != 0 {
|
||
|
buf.WriteString(`"flags":`)
|
||
|
/* Falling back. type=map[string]interface {} kind=map */
|
||
|
err = buf.Encode(j.Flags)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
buf.WriteByte(',')
|
||
|
}
|
||
|
buf.Rewind(1)
|
||
|
buf.WriteByte('}')
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
const (
|
||
|
ffjtContainerbase = iota
|
||
|
ffjtContainernosuchkey
|
||
|
|
||
|
ffjtContainerID
|
||
|
|
||
|
ffjtContainerNames
|
||
|
|
||
|
ffjtContainerImageID
|
||
|
|
||
|
ffjtContainerLayerID
|
||
|
|
||
|
ffjtContainerMetadata
|
||
|
|
||
|
ffjtContainerBigDataNames
|
||
|
|
||
|
ffjtContainerBigDataSizes
|
||
|
|
||
|
ffjtContainerBigDataDigests
|
||
|
|
||
|
ffjtContainerCreated
|
||
|
|
||
|
ffjtContainerFlags
|
||
|
)
|
||
|
|
||
|
var ffjKeyContainerID = []byte("id")
|
||
|
|
||
|
var ffjKeyContainerNames = []byte("names")
|
||
|
|
||
|
var ffjKeyContainerImageID = []byte("image")
|
||
|
|
||
|
var ffjKeyContainerLayerID = []byte("layer")
|
||
|
|
||
|
var ffjKeyContainerMetadata = []byte("metadata")
|
||
|
|
||
|
var ffjKeyContainerBigDataNames = []byte("big-data-names")
|
||
|
|
||
|
var ffjKeyContainerBigDataSizes = []byte("big-data-sizes")
|
||
|
|
||
|
var ffjKeyContainerBigDataDigests = []byte("big-data-digests")
|
||
|
|
||
|
var ffjKeyContainerCreated = []byte("created")
|
||
|
|
||
|
var ffjKeyContainerFlags = []byte("flags")
|
||
|
|
||
|
// UnmarshalJSON umarshall json - template of ffjson
|
||
|
func (j *Container) UnmarshalJSON(input []byte) error {
|
||
|
fs := fflib.NewFFLexer(input)
|
||
|
return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start)
|
||
|
}
|
||
|
|
||
|
// UnmarshalJSONFFLexer fast json unmarshall - template ffjson
|
||
|
func (j *Container) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error {
|
||
|
var err error
|
||
|
currentKey := ffjtContainerbase
|
||
|
_ = 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 = ffjtContainernosuchkey
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
} else {
|
||
|
switch kn[0] {
|
||
|
|
||
|
case 'b':
|
||
|
|
||
|
if bytes.Equal(ffjKeyContainerBigDataNames, kn) {
|
||
|
currentKey = ffjtContainerBigDataNames
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
|
||
|
} else if bytes.Equal(ffjKeyContainerBigDataSizes, kn) {
|
||
|
currentKey = ffjtContainerBigDataSizes
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
|
||
|
} else if bytes.Equal(ffjKeyContainerBigDataDigests, kn) {
|
||
|
currentKey = ffjtContainerBigDataDigests
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
}
|
||
|
|
||
|
case 'c':
|
||
|
|
||
|
if bytes.Equal(ffjKeyContainerCreated, kn) {
|
||
|
currentKey = ffjtContainerCreated
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
}
|
||
|
|
||
|
case 'f':
|
||
|
|
||
|
if bytes.Equal(ffjKeyContainerFlags, kn) {
|
||
|
currentKey = ffjtContainerFlags
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
}
|
||
|
|
||
|
case 'i':
|
||
|
|
||
|
if bytes.Equal(ffjKeyContainerID, kn) {
|
||
|
currentKey = ffjtContainerID
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
|
||
|
} else if bytes.Equal(ffjKeyContainerImageID, kn) {
|
||
|
currentKey = ffjtContainerImageID
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
}
|
||
|
|
||
|
case 'l':
|
||
|
|
||
|
if bytes.Equal(ffjKeyContainerLayerID, kn) {
|
||
|
currentKey = ffjtContainerLayerID
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
}
|
||
|
|
||
|
case 'm':
|
||
|
|
||
|
if bytes.Equal(ffjKeyContainerMetadata, kn) {
|
||
|
currentKey = ffjtContainerMetadata
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
}
|
||
|
|
||
|
case 'n':
|
||
|
|
||
|
if bytes.Equal(ffjKeyContainerNames, kn) {
|
||
|
currentKey = ffjtContainerNames
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
if fflib.EqualFoldRight(ffjKeyContainerFlags, kn) {
|
||
|
currentKey = ffjtContainerFlags
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
}
|
||
|
|
||
|
if fflib.SimpleLetterEqualFold(ffjKeyContainerCreated, kn) {
|
||
|
currentKey = ffjtContainerCreated
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
}
|
||
|
|
||
|
if fflib.EqualFoldRight(ffjKeyContainerBigDataDigests, kn) {
|
||
|
currentKey = ffjtContainerBigDataDigests
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
}
|
||
|
|
||
|
if fflib.EqualFoldRight(ffjKeyContainerBigDataSizes, kn) {
|
||
|
currentKey = ffjtContainerBigDataSizes
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
}
|
||
|
|
||
|
if fflib.EqualFoldRight(ffjKeyContainerBigDataNames, kn) {
|
||
|
currentKey = ffjtContainerBigDataNames
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
}
|
||
|
|
||
|
if fflib.SimpleLetterEqualFold(ffjKeyContainerMetadata, kn) {
|
||
|
currentKey = ffjtContainerMetadata
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
}
|
||
|
|
||
|
if fflib.SimpleLetterEqualFold(ffjKeyContainerLayerID, kn) {
|
||
|
currentKey = ffjtContainerLayerID
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
}
|
||
|
|
||
|
if fflib.SimpleLetterEqualFold(ffjKeyContainerImageID, kn) {
|
||
|
currentKey = ffjtContainerImageID
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
}
|
||
|
|
||
|
if fflib.EqualFoldRight(ffjKeyContainerNames, kn) {
|
||
|
currentKey = ffjtContainerNames
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
}
|
||
|
|
||
|
if fflib.SimpleLetterEqualFold(ffjKeyContainerID, kn) {
|
||
|
currentKey = ffjtContainerID
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
}
|
||
|
|
||
|
currentKey = ffjtContainernosuchkey
|
||
|
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 ffjtContainerID:
|
||
|
goto handle_ID
|
||
|
|
||
|
case ffjtContainerNames:
|
||
|
goto handle_Names
|
||
|
|
||
|
case ffjtContainerImageID:
|
||
|
goto handle_ImageID
|
||
|
|
||
|
case ffjtContainerLayerID:
|
||
|
goto handle_LayerID
|
||
|
|
||
|
case ffjtContainerMetadata:
|
||
|
goto handle_Metadata
|
||
|
|
||
|
case ffjtContainerBigDataNames:
|
||
|
goto handle_BigDataNames
|
||
|
|
||
|
case ffjtContainerBigDataSizes:
|
||
|
goto handle_BigDataSizes
|
||
|
|
||
|
case ffjtContainerBigDataDigests:
|
||
|
goto handle_BigDataDigests
|
||
|
|
||
|
case ffjtContainerCreated:
|
||
|
goto handle_Created
|
||
|
|
||
|
case ffjtContainerFlags:
|
||
|
goto handle_Flags
|
||
|
|
||
|
case ffjtContainernosuchkey:
|
||
|
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_Names:
|
||
|
|
||
|
/* handler: j.Names 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.Names = nil
|
||
|
} else {
|
||
|
|
||
|
j.Names = []string{}
|
||
|
|
||
|
wantVal := true
|
||
|
|
||
|
for {
|
||
|
|
||
|
var tmpJNames 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: tmpJNames 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()
|
||
|
|
||
|
tmpJNames = string(string(outBuf))
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
j.Names = append(j.Names, tmpJNames)
|
||
|
|
||
|
wantVal = false
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
state = fflib.FFParse_after_value
|
||
|
goto mainparse
|
||
|
|
||
|
handle_ImageID:
|
||
|
|
||
|
/* handler: j.ImageID 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.ImageID = string(string(outBuf))
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
state = fflib.FFParse_after_value
|
||
|
goto mainparse
|
||
|
|
||
|
handle_LayerID:
|
||
|
|
||
|
/* handler: j.LayerID 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.LayerID = string(string(outBuf))
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
state = fflib.FFParse_after_value
|
||
|
goto mainparse
|
||
|
|
||
|
handle_Metadata:
|
||
|
|
||
|
/* handler: j.Metadata 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.Metadata = string(string(outBuf))
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
state = fflib.FFParse_after_value
|
||
|
goto mainparse
|
||
|
|
||
|
handle_BigDataNames:
|
||
|
|
||
|
/* handler: j.BigDataNames 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.BigDataNames = nil
|
||
|
} else {
|
||
|
|
||
|
j.BigDataNames = []string{}
|
||
|
|
||
|
wantVal := true
|
||
|
|
||
|
for {
|
||
|
|
||
|
var tmpJBigDataNames 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: tmpJBigDataNames 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()
|
||
|
|
||
|
tmpJBigDataNames = string(string(outBuf))
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
j.BigDataNames = append(j.BigDataNames, tmpJBigDataNames)
|
||
|
|
||
|
wantVal = false
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
state = fflib.FFParse_after_value
|
||
|
goto mainparse
|
||
|
|
||
|
handle_BigDataSizes:
|
||
|
|
||
|
/* handler: j.BigDataSizes type=map[string]int64 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.BigDataSizes = nil
|
||
|
} else {
|
||
|
|
||
|
j.BigDataSizes = make(map[string]int64, 0)
|
||
|
|
||
|
wantVal := true
|
||
|
|
||
|
for {
|
||
|
|
||
|
var k string
|
||
|
|
||
|
var tmpJBigDataSizes int64
|
||
|
|
||
|
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: tmpJBigDataSizes 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)
|
||
|
}
|
||
|
|
||
|
tmpJBigDataSizes = int64(tval)
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
j.BigDataSizes[k] = tmpJBigDataSizes
|
||
|
|
||
|
wantVal = false
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
state = fflib.FFParse_after_value
|
||
|
goto mainparse
|
||
|
|
||
|
handle_BigDataDigests:
|
||
|
|
||
|
/* handler: j.BigDataDigests type=map[string]digest.Digest 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.BigDataDigests = nil
|
||
|
} else {
|
||
|
|
||
|
j.BigDataDigests = make(map[string]digest.Digest, 0)
|
||
|
|
||
|
wantVal := true
|
||
|
|
||
|
for {
|
||
|
|
||
|
var k string
|
||
|
|
||
|
var tmpJBigDataDigests digest.Digest
|
||
|
|
||
|
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: tmpJBigDataDigests type=digest.Digest 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 Digest", tok))
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if tok == fflib.FFTok_null {
|
||
|
|
||
|
} else {
|
||
|
|
||
|
outBuf := fs.Output.Bytes()
|
||
|
|
||
|
tmpJBigDataDigests = digest.Digest(string(outBuf))
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
j.BigDataDigests[k] = tmpJBigDataDigests
|
||
|
|
||
|
wantVal = false
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
state = fflib.FFParse_after_value
|
||
|
goto mainparse
|
||
|
|
||
|
handle_Created:
|
||
|
|
||
|
/* handler: j.Created 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.Created.UnmarshalJSON(tbuf)
|
||
|
if err != nil {
|
||
|
return fs.WrapErr(err)
|
||
|
}
|
||
|
}
|
||
|
state = fflib.FFParse_after_value
|
||
|
}
|
||
|
|
||
|
state = fflib.FFParse_after_value
|
||
|
goto mainparse
|
||
|
|
||
|
handle_Flags:
|
||
|
|
||
|
/* handler: j.Flags type=map[string]interface {} 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.Flags = nil
|
||
|
} else {
|
||
|
|
||
|
j.Flags = make(map[string]interface{}, 0)
|
||
|
|
||
|
wantVal := true
|
||
|
|
||
|
for {
|
||
|
|
||
|
var k string
|
||
|
|
||
|
var tmpJFlags interface{}
|
||
|
|
||
|
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: tmpJFlags type=interface {} kind=interface quoted=false*/
|
||
|
|
||
|
{
|
||
|
/* Falling back. type=interface {} kind=interface */
|
||
|
tbuf, err := fs.CaptureField(tok)
|
||
|
if err != nil {
|
||
|
return fs.WrapErr(err)
|
||
|
}
|
||
|
|
||
|
err = json.Unmarshal(tbuf, &tmpJFlags)
|
||
|
if err != nil {
|
||
|
return fs.WrapErr(err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
j.Flags[k] = tmpJFlags
|
||
|
|
||
|
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 *containerStore) 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 *containerStore) MarshalJSONBuf(buf fflib.EncodingBuffer) error {
|
||
|
if j == nil {
|
||
|
buf.WriteString("null")
|
||
|
return nil
|
||
|
}
|
||
|
var err error
|
||
|
var obj []byte
|
||
|
_ = obj
|
||
|
_ = err
|
||
|
buf.WriteString(`{}`)
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
const (
|
||
|
ffjtcontainerStorebase = iota
|
||
|
ffjtcontainerStorenosuchkey
|
||
|
)
|
||
|
|
||
|
// UnmarshalJSON umarshall json - template of ffjson
|
||
|
func (j *containerStore) UnmarshalJSON(input []byte) error {
|
||
|
fs := fflib.NewFFLexer(input)
|
||
|
return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start)
|
||
|
}
|
||
|
|
||
|
// UnmarshalJSONFFLexer fast json unmarshall - template ffjson
|
||
|
func (j *containerStore) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error {
|
||
|
var err error
|
||
|
currentKey := ffjtcontainerStorebase
|
||
|
_ = 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 = ffjtcontainerStorenosuchkey
|
||
|
state = fflib.FFParse_want_colon
|
||
|
goto mainparse
|
||
|
} else {
|
||
|
switch kn[0] {
|
||
|
|
||
|
}
|
||
|
|
||
|
currentKey = ffjtcontainerStorenosuchkey
|
||
|
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 ffjtcontainerStorenosuchkey:
|
||
|
err = fs.SkipField(tok)
|
||
|
if err != nil {
|
||
|
return fs.WrapErr(err)
|
||
|
}
|
||
|
state = fflib.FFParse_after_value
|
||
|
goto mainparse
|
||
|
}
|
||
|
} else {
|
||
|
goto wantedvalue
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
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
|
||
|
}
|