// Code generated by easyjson for marshaling/unmarshaling. DO NOT EDIT.

package packageindex

import (
	json "encoding/json"
	easyjson "github.com/mailru/easyjson"
	jlexer "github.com/mailru/easyjson/jlexer"
	jwriter "github.com/mailru/easyjson/jwriter"
	relaxed_semver "go.bug.st/relaxed-semver"
	strings "strings"
)

// suppress unused package warning
var (
	_ *json.RawMessage
	_ *jlexer.Lexer
	_ *jwriter.Writer
	_ easyjson.Marshaler
)

func easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex(in *jlexer.Lexer, out *indexToolReleaseFlavour) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "host":
			out.OS = string(in.String())
		case "url":
			out.URL = string(in.String())
		case "archiveFileName":
			out.ArchiveFileName = string(in.String())
		case "size":
			out.Size = in.JsonNumber()
		case "checksum":
			out.Checksum = string(in.String())
		default:
			switch strings.ToLower(key) {
			case "host":
				out.OS = string(in.String())
			case "url":
				out.URL = string(in.String())
			case "archivefilename":
				out.ArchiveFileName = string(in.String())
			case "size":
				out.Size = in.JsonNumber()
			case "checksum":
				out.Checksum = string(in.String())
			default:
				in.SkipRecursive()
			}
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex(out *jwriter.Writer, in indexToolReleaseFlavour) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"host\":"
		out.RawString(prefix[1:])
		out.String(string(in.OS))
	}
	{
		const prefix string = ",\"url\":"
		out.RawString(prefix)
		out.String(string(in.URL))
	}
	{
		const prefix string = ",\"archiveFileName\":"
		out.RawString(prefix)
		out.String(string(in.ArchiveFileName))
	}
	{
		const prefix string = ",\"size\":"
		out.RawString(prefix)
		out.String(string(in.Size))
	}
	{
		const prefix string = ",\"checksum\":"
		out.RawString(prefix)
		out.String(string(in.Checksum))
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v indexToolReleaseFlavour) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v indexToolReleaseFlavour) MarshalEasyJSON(w *jwriter.Writer) {
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *indexToolReleaseFlavour) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *indexToolReleaseFlavour) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex(l, v)
}
func easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex1(in *jlexer.Lexer, out *indexToolRelease) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "name":
			out.Name = string(in.String())
		case "version":
			if in.IsNull() {
				in.Skip()
				out.Version = nil
			} else {
				if out.Version == nil {
					out.Version = new(relaxed_semver.RelaxedVersion)
				}
				if data := in.Raw(); in.Ok() {
					in.AddError((*out.Version).UnmarshalJSON(data))
				}
			}
		case "systems":
			if in.IsNull() {
				in.Skip()
				out.Systems = nil
			} else {
				in.Delim('[')
				if out.Systems == nil {
					if !in.IsDelim(']') {
						out.Systems = make([]indexToolReleaseFlavour, 0, 0)
					} else {
						out.Systems = []indexToolReleaseFlavour{}
					}
				} else {
					out.Systems = (out.Systems)[:0]
				}
				for !in.IsDelim(']') {
					var v1 indexToolReleaseFlavour
					(v1).UnmarshalEasyJSON(in)
					out.Systems = append(out.Systems, v1)
					in.WantComma()
				}
				in.Delim(']')
			}
		default:
			switch strings.ToLower(key) {
			case "name":
				out.Name = string(in.String())
			case "version":
				if in.IsNull() {
					in.Skip()
					out.Version = nil
				} else {
					if out.Version == nil {
						out.Version = new(relaxed_semver.RelaxedVersion)
					}
					if data := in.Raw(); in.Ok() {
						in.AddError((*out.Version).UnmarshalJSON(data))
					}
				}
			case "systems":
				if in.IsNull() {
					in.Skip()
					out.Systems = nil
				} else {
					in.Delim('[')
					if out.Systems == nil {
						if !in.IsDelim(']') {
							out.Systems = make([]indexToolReleaseFlavour, 0, 0)
						} else {
							out.Systems = []indexToolReleaseFlavour{}
						}
					} else {
						out.Systems = (out.Systems)[:0]
					}
					for !in.IsDelim(']') {
						var v2 indexToolReleaseFlavour
						(v2).UnmarshalEasyJSON(in)
						out.Systems = append(out.Systems, v2)
						in.WantComma()
					}
					in.Delim(']')
				}
			default:
				in.SkipRecursive()
			}
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex1(out *jwriter.Writer, in indexToolRelease) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"name\":"
		out.RawString(prefix[1:])
		out.String(string(in.Name))
	}
	{
		const prefix string = ",\"version\":"
		out.RawString(prefix)
		if in.Version == nil {
			out.RawString("null")
		} else {
			out.Raw((*in.Version).MarshalJSON())
		}
	}
	{
		const prefix string = ",\"systems\":"
		out.RawString(prefix)
		if in.Systems == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
			out.RawString("null")
		} else {
			out.RawByte('[')
			for v3, v4 := range in.Systems {
				if v3 > 0 {
					out.RawByte(',')
				}
				(v4).MarshalEasyJSON(out)
			}
			out.RawByte(']')
		}
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v indexToolRelease) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex1(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v indexToolRelease) MarshalEasyJSON(w *jwriter.Writer) {
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex1(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *indexToolRelease) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex1(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *indexToolRelease) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex1(l, v)
}
func easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex2(in *jlexer.Lexer, out *indexToolDependency) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "packager":
			out.Packager = string(in.String())
		case "name":
			out.Name = string(in.String())
		case "version":
			if in.IsNull() {
				in.Skip()
				out.Version = nil
			} else {
				if out.Version == nil {
					out.Version = new(relaxed_semver.RelaxedVersion)
				}
				if data := in.Raw(); in.Ok() {
					in.AddError((*out.Version).UnmarshalJSON(data))
				}
			}
		default:
			switch strings.ToLower(key) {
			case "packager":
				out.Packager = string(in.String())
			case "name":
				out.Name = string(in.String())
			case "version":
				if in.IsNull() {
					in.Skip()
					out.Version = nil
				} else {
					if out.Version == nil {
						out.Version = new(relaxed_semver.RelaxedVersion)
					}
					if data := in.Raw(); in.Ok() {
						in.AddError((*out.Version).UnmarshalJSON(data))
					}
				}
			default:
				in.SkipRecursive()
			}
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex2(out *jwriter.Writer, in indexToolDependency) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"packager\":"
		out.RawString(prefix[1:])
		out.String(string(in.Packager))
	}
	{
		const prefix string = ",\"name\":"
		out.RawString(prefix)
		out.String(string(in.Name))
	}
	{
		const prefix string = ",\"version\":"
		out.RawString(prefix)
		if in.Version == nil {
			out.RawString("null")
		} else {
			out.Raw((*in.Version).MarshalJSON())
		}
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v indexToolDependency) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex2(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v indexToolDependency) MarshalEasyJSON(w *jwriter.Writer) {
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex2(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *indexToolDependency) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex2(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *indexToolDependency) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex2(l, v)
}
func easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex3(in *jlexer.Lexer, out *indexPlatformRelease) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "name":
			out.Name = string(in.String())
		case "architecture":
			out.Architecture = string(in.String())
		case "version":
			if in.IsNull() {
				in.Skip()
				out.Version = nil
			} else {
				if out.Version == nil {
					out.Version = new(relaxed_semver.Version)
				}
				if data := in.Raw(); in.Ok() {
					in.AddError((*out.Version).UnmarshalJSON(data))
				}
			}
		case "deprecated":
			out.Deprecated = bool(in.Bool())
		case "category":
			out.Category = string(in.String())
		case "url":
			out.URL = string(in.String())
		case "archiveFileName":
			out.ArchiveFileName = string(in.String())
		case "checksum":
			out.Checksum = string(in.String())
		case "size":
			out.Size = in.JsonNumber()
		case "boards":
			if in.IsNull() {
				in.Skip()
				out.Boards = nil
			} else {
				in.Delim('[')
				if out.Boards == nil {
					if !in.IsDelim(']') {
						out.Boards = make([]indexBoard, 0, 1)
					} else {
						out.Boards = []indexBoard{}
					}
				} else {
					out.Boards = (out.Boards)[:0]
				}
				for !in.IsDelim(']') {
					var v5 indexBoard
					(v5).UnmarshalEasyJSON(in)
					out.Boards = append(out.Boards, v5)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "help":
			(out.Help).UnmarshalEasyJSON(in)
		case "toolsDependencies":
			if in.IsNull() {
				in.Skip()
				out.ToolDependencies = nil
			} else {
				in.Delim('[')
				if out.ToolDependencies == nil {
					if !in.IsDelim(']') {
						out.ToolDependencies = make([]indexToolDependency, 0, 1)
					} else {
						out.ToolDependencies = []indexToolDependency{}
					}
				} else {
					out.ToolDependencies = (out.ToolDependencies)[:0]
				}
				for !in.IsDelim(']') {
					var v6 indexToolDependency
					(v6).UnmarshalEasyJSON(in)
					out.ToolDependencies = append(out.ToolDependencies, v6)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "discoveryDependencies":
			if in.IsNull() {
				in.Skip()
				out.DiscoveryDependencies = nil
			} else {
				in.Delim('[')
				if out.DiscoveryDependencies == nil {
					if !in.IsDelim(']') {
						out.DiscoveryDependencies = make([]indexDiscoveryDependency, 0, 2)
					} else {
						out.DiscoveryDependencies = []indexDiscoveryDependency{}
					}
				} else {
					out.DiscoveryDependencies = (out.DiscoveryDependencies)[:0]
				}
				for !in.IsDelim(']') {
					var v7 indexDiscoveryDependency
					(v7).UnmarshalEasyJSON(in)
					out.DiscoveryDependencies = append(out.DiscoveryDependencies, v7)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "monitorDependencies":
			if in.IsNull() {
				in.Skip()
				out.MonitorDependencies = nil
			} else {
				in.Delim('[')
				if out.MonitorDependencies == nil {
					if !in.IsDelim(']') {
						out.MonitorDependencies = make([]indexMonitorDependency, 0, 2)
					} else {
						out.MonitorDependencies = []indexMonitorDependency{}
					}
				} else {
					out.MonitorDependencies = (out.MonitorDependencies)[:0]
				}
				for !in.IsDelim(']') {
					var v8 indexMonitorDependency
					(v8).UnmarshalEasyJSON(in)
					out.MonitorDependencies = append(out.MonitorDependencies, v8)
					in.WantComma()
				}
				in.Delim(']')
			}
		default:
			switch strings.ToLower(key) {
			case "name":
				out.Name = string(in.String())
			case "architecture":
				out.Architecture = string(in.String())
			case "version":
				if in.IsNull() {
					in.Skip()
					out.Version = nil
				} else {
					if out.Version == nil {
						out.Version = new(relaxed_semver.Version)
					}
					if data := in.Raw(); in.Ok() {
						in.AddError((*out.Version).UnmarshalJSON(data))
					}
				}
			case "deprecated":
				out.Deprecated = bool(in.Bool())
			case "category":
				out.Category = string(in.String())
			case "url":
				out.URL = string(in.String())
			case "archivefilename":
				out.ArchiveFileName = string(in.String())
			case "checksum":
				out.Checksum = string(in.String())
			case "size":
				out.Size = in.JsonNumber()
			case "boards":
				if in.IsNull() {
					in.Skip()
					out.Boards = nil
				} else {
					in.Delim('[')
					if out.Boards == nil {
						if !in.IsDelim(']') {
							out.Boards = make([]indexBoard, 0, 1)
						} else {
							out.Boards = []indexBoard{}
						}
					} else {
						out.Boards = (out.Boards)[:0]
					}
					for !in.IsDelim(']') {
						var v9 indexBoard
						(v9).UnmarshalEasyJSON(in)
						out.Boards = append(out.Boards, v9)
						in.WantComma()
					}
					in.Delim(']')
				}
			case "help":
				(out.Help).UnmarshalEasyJSON(in)
			case "toolsdependencies":
				if in.IsNull() {
					in.Skip()
					out.ToolDependencies = nil
				} else {
					in.Delim('[')
					if out.ToolDependencies == nil {
						if !in.IsDelim(']') {
							out.ToolDependencies = make([]indexToolDependency, 0, 1)
						} else {
							out.ToolDependencies = []indexToolDependency{}
						}
					} else {
						out.ToolDependencies = (out.ToolDependencies)[:0]
					}
					for !in.IsDelim(']') {
						var v10 indexToolDependency
						(v10).UnmarshalEasyJSON(in)
						out.ToolDependencies = append(out.ToolDependencies, v10)
						in.WantComma()
					}
					in.Delim(']')
				}
			case "discoverydependencies":
				if in.IsNull() {
					in.Skip()
					out.DiscoveryDependencies = nil
				} else {
					in.Delim('[')
					if out.DiscoveryDependencies == nil {
						if !in.IsDelim(']') {
							out.DiscoveryDependencies = make([]indexDiscoveryDependency, 0, 2)
						} else {
							out.DiscoveryDependencies = []indexDiscoveryDependency{}
						}
					} else {
						out.DiscoveryDependencies = (out.DiscoveryDependencies)[:0]
					}
					for !in.IsDelim(']') {
						var v11 indexDiscoveryDependency
						(v11).UnmarshalEasyJSON(in)
						out.DiscoveryDependencies = append(out.DiscoveryDependencies, v11)
						in.WantComma()
					}
					in.Delim(']')
				}
			case "monitordependencies":
				if in.IsNull() {
					in.Skip()
					out.MonitorDependencies = nil
				} else {
					in.Delim('[')
					if out.MonitorDependencies == nil {
						if !in.IsDelim(']') {
							out.MonitorDependencies = make([]indexMonitorDependency, 0, 2)
						} else {
							out.MonitorDependencies = []indexMonitorDependency{}
						}
					} else {
						out.MonitorDependencies = (out.MonitorDependencies)[:0]
					}
					for !in.IsDelim(']') {
						var v12 indexMonitorDependency
						(v12).UnmarshalEasyJSON(in)
						out.MonitorDependencies = append(out.MonitorDependencies, v12)
						in.WantComma()
					}
					in.Delim(']')
				}
			default:
				in.SkipRecursive()
			}
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex3(out *jwriter.Writer, in indexPlatformRelease) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"name\":"
		out.RawString(prefix[1:])
		out.String(string(in.Name))
	}
	{
		const prefix string = ",\"architecture\":"
		out.RawString(prefix)
		out.String(string(in.Architecture))
	}
	{
		const prefix string = ",\"version\":"
		out.RawString(prefix)
		if in.Version == nil {
			out.RawString("null")
		} else {
			out.Raw((*in.Version).MarshalJSON())
		}
	}
	{
		const prefix string = ",\"deprecated\":"
		out.RawString(prefix)
		out.Bool(bool(in.Deprecated))
	}
	{
		const prefix string = ",\"category\":"
		out.RawString(prefix)
		out.String(string(in.Category))
	}
	{
		const prefix string = ",\"url\":"
		out.RawString(prefix)
		out.String(string(in.URL))
	}
	{
		const prefix string = ",\"archiveFileName\":"
		out.RawString(prefix)
		out.String(string(in.ArchiveFileName))
	}
	{
		const prefix string = ",\"checksum\":"
		out.RawString(prefix)
		out.String(string(in.Checksum))
	}
	{
		const prefix string = ",\"size\":"
		out.RawString(prefix)
		out.String(string(in.Size))
	}
	{
		const prefix string = ",\"boards\":"
		out.RawString(prefix)
		if in.Boards == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
			out.RawString("null")
		} else {
			out.RawByte('[')
			for v13, v14 := range in.Boards {
				if v13 > 0 {
					out.RawByte(',')
				}
				(v14).MarshalEasyJSON(out)
			}
			out.RawByte(']')
		}
	}
	if true {
		const prefix string = ",\"help\":"
		out.RawString(prefix)
		(in.Help).MarshalEasyJSON(out)
	}
	{
		const prefix string = ",\"toolsDependencies\":"
		out.RawString(prefix)
		if in.ToolDependencies == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
			out.RawString("null")
		} else {
			out.RawByte('[')
			for v15, v16 := range in.ToolDependencies {
				if v15 > 0 {
					out.RawByte(',')
				}
				(v16).MarshalEasyJSON(out)
			}
			out.RawByte(']')
		}
	}
	{
		const prefix string = ",\"discoveryDependencies\":"
		out.RawString(prefix)
		if in.DiscoveryDependencies == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
			out.RawString("null")
		} else {
			out.RawByte('[')
			for v17, v18 := range in.DiscoveryDependencies {
				if v17 > 0 {
					out.RawByte(',')
				}
				(v18).MarshalEasyJSON(out)
			}
			out.RawByte(']')
		}
	}
	{
		const prefix string = ",\"monitorDependencies\":"
		out.RawString(prefix)
		if in.MonitorDependencies == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
			out.RawString("null")
		} else {
			out.RawByte('[')
			for v19, v20 := range in.MonitorDependencies {
				if v19 > 0 {
					out.RawByte(',')
				}
				(v20).MarshalEasyJSON(out)
			}
			out.RawByte(']')
		}
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v indexPlatformRelease) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex3(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v indexPlatformRelease) MarshalEasyJSON(w *jwriter.Writer) {
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex3(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *indexPlatformRelease) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex3(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *indexPlatformRelease) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex3(l, v)
}
func easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex4(in *jlexer.Lexer, out *indexPackage) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "name":
			out.Name = string(in.String())
		case "maintainer":
			out.Maintainer = string(in.String())
		case "websiteUrl":
			out.WebsiteURL = string(in.String())
		case "Url":
			out.URL = string(in.String())
		case "email":
			out.Email = string(in.String())
		case "platforms":
			if in.IsNull() {
				in.Skip()
				out.Platforms = nil
			} else {
				in.Delim('[')
				if out.Platforms == nil {
					if !in.IsDelim(']') {
						out.Platforms = make([]*indexPlatformRelease, 0, 8)
					} else {
						out.Platforms = []*indexPlatformRelease{}
					}
				} else {
					out.Platforms = (out.Platforms)[:0]
				}
				for !in.IsDelim(']') {
					var v21 *indexPlatformRelease
					if in.IsNull() {
						in.Skip()
						v21 = nil
					} else {
						if v21 == nil {
							v21 = new(indexPlatformRelease)
						}
						(*v21).UnmarshalEasyJSON(in)
					}
					out.Platforms = append(out.Platforms, v21)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "tools":
			if in.IsNull() {
				in.Skip()
				out.Tools = nil
			} else {
				in.Delim('[')
				if out.Tools == nil {
					if !in.IsDelim(']') {
						out.Tools = make([]*indexToolRelease, 0, 8)
					} else {
						out.Tools = []*indexToolRelease{}
					}
				} else {
					out.Tools = (out.Tools)[:0]
				}
				for !in.IsDelim(']') {
					var v22 *indexToolRelease
					if in.IsNull() {
						in.Skip()
						v22 = nil
					} else {
						if v22 == nil {
							v22 = new(indexToolRelease)
						}
						(*v22).UnmarshalEasyJSON(in)
					}
					out.Tools = append(out.Tools, v22)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "help":
			(out.Help).UnmarshalEasyJSON(in)
		default:
			switch strings.ToLower(key) {
			case "name":
				out.Name = string(in.String())
			case "maintainer":
				out.Maintainer = string(in.String())
			case "websiteurl":
				out.WebsiteURL = string(in.String())
			case "url":
				out.URL = string(in.String())
			case "email":
				out.Email = string(in.String())
			case "platforms":
				if in.IsNull() {
					in.Skip()
					out.Platforms = nil
				} else {
					in.Delim('[')
					if out.Platforms == nil {
						if !in.IsDelim(']') {
							out.Platforms = make([]*indexPlatformRelease, 0, 8)
						} else {
							out.Platforms = []*indexPlatformRelease{}
						}
					} else {
						out.Platforms = (out.Platforms)[:0]
					}
					for !in.IsDelim(']') {
						var v23 *indexPlatformRelease
						if in.IsNull() {
							in.Skip()
							v23 = nil
						} else {
							if v23 == nil {
								v23 = new(indexPlatformRelease)
							}
							(*v23).UnmarshalEasyJSON(in)
						}
						out.Platforms = append(out.Platforms, v23)
						in.WantComma()
					}
					in.Delim(']')
				}
			case "tools":
				if in.IsNull() {
					in.Skip()
					out.Tools = nil
				} else {
					in.Delim('[')
					if out.Tools == nil {
						if !in.IsDelim(']') {
							out.Tools = make([]*indexToolRelease, 0, 8)
						} else {
							out.Tools = []*indexToolRelease{}
						}
					} else {
						out.Tools = (out.Tools)[:0]
					}
					for !in.IsDelim(']') {
						var v24 *indexToolRelease
						if in.IsNull() {
							in.Skip()
							v24 = nil
						} else {
							if v24 == nil {
								v24 = new(indexToolRelease)
							}
							(*v24).UnmarshalEasyJSON(in)
						}
						out.Tools = append(out.Tools, v24)
						in.WantComma()
					}
					in.Delim(']')
				}
			case "help":
				(out.Help).UnmarshalEasyJSON(in)
			default:
				in.SkipRecursive()
			}
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex4(out *jwriter.Writer, in indexPackage) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"name\":"
		out.RawString(prefix[1:])
		out.String(string(in.Name))
	}
	{
		const prefix string = ",\"maintainer\":"
		out.RawString(prefix)
		out.String(string(in.Maintainer))
	}
	{
		const prefix string = ",\"websiteUrl\":"
		out.RawString(prefix)
		out.String(string(in.WebsiteURL))
	}
	{
		const prefix string = ",\"Url\":"
		out.RawString(prefix)
		out.String(string(in.URL))
	}
	{
		const prefix string = ",\"email\":"
		out.RawString(prefix)
		out.String(string(in.Email))
	}
	{
		const prefix string = ",\"platforms\":"
		out.RawString(prefix)
		if in.Platforms == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
			out.RawString("null")
		} else {
			out.RawByte('[')
			for v25, v26 := range in.Platforms {
				if v25 > 0 {
					out.RawByte(',')
				}
				if v26 == nil {
					out.RawString("null")
				} else {
					(*v26).MarshalEasyJSON(out)
				}
			}
			out.RawByte(']')
		}
	}
	{
		const prefix string = ",\"tools\":"
		out.RawString(prefix)
		if in.Tools == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
			out.RawString("null")
		} else {
			out.RawByte('[')
			for v27, v28 := range in.Tools {
				if v27 > 0 {
					out.RawByte(',')
				}
				if v28 == nil {
					out.RawString("null")
				} else {
					(*v28).MarshalEasyJSON(out)
				}
			}
			out.RawByte(']')
		}
	}
	if true {
		const prefix string = ",\"help\":"
		out.RawString(prefix)
		(in.Help).MarshalEasyJSON(out)
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v indexPackage) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex4(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v indexPackage) MarshalEasyJSON(w *jwriter.Writer) {
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex4(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *indexPackage) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex4(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *indexPackage) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex4(l, v)
}
func easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex5(in *jlexer.Lexer, out *indexMonitorDependency) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "packager":
			out.Packager = string(in.String())
		case "name":
			out.Name = string(in.String())
		default:
			switch strings.ToLower(key) {
			case "packager":
				out.Packager = string(in.String())
			case "name":
				out.Name = string(in.String())
			default:
				in.SkipRecursive()
			}
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex5(out *jwriter.Writer, in indexMonitorDependency) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"packager\":"
		out.RawString(prefix[1:])
		out.String(string(in.Packager))
	}
	{
		const prefix string = ",\"name\":"
		out.RawString(prefix)
		out.String(string(in.Name))
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v indexMonitorDependency) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex5(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v indexMonitorDependency) MarshalEasyJSON(w *jwriter.Writer) {
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex5(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *indexMonitorDependency) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex5(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *indexMonitorDependency) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex5(l, v)
}
func easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex6(in *jlexer.Lexer, out *indexHelp) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "online":
			out.Online = string(in.String())
		default:
			switch strings.ToLower(key) {
			case "online":
				out.Online = string(in.String())
			default:
				in.SkipRecursive()
			}
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex6(out *jwriter.Writer, in indexHelp) {
	out.RawByte('{')
	first := true
	_ = first
	if in.Online != "" {
		const prefix string = ",\"online\":"
		first = false
		out.RawString(prefix[1:])
		out.String(string(in.Online))
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v indexHelp) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex6(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v indexHelp) MarshalEasyJSON(w *jwriter.Writer) {
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex6(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *indexHelp) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex6(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *indexHelp) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex6(l, v)
}
func easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex7(in *jlexer.Lexer, out *indexDiscoveryDependency) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "packager":
			out.Packager = string(in.String())
		case "name":
			out.Name = string(in.String())
		default:
			switch strings.ToLower(key) {
			case "packager":
				out.Packager = string(in.String())
			case "name":
				out.Name = string(in.String())
			default:
				in.SkipRecursive()
			}
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex7(out *jwriter.Writer, in indexDiscoveryDependency) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"packager\":"
		out.RawString(prefix[1:])
		out.String(string(in.Packager))
	}
	{
		const prefix string = ",\"name\":"
		out.RawString(prefix)
		out.String(string(in.Name))
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v indexDiscoveryDependency) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex7(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v indexDiscoveryDependency) MarshalEasyJSON(w *jwriter.Writer) {
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex7(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *indexDiscoveryDependency) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex7(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *indexDiscoveryDependency) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex7(l, v)
}
func easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex8(in *jlexer.Lexer, out *indexBoardID) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "usb":
			out.USB = string(in.String())
		default:
			switch strings.ToLower(key) {
			case "usb":
				out.USB = string(in.String())
			default:
				in.SkipRecursive()
			}
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex8(out *jwriter.Writer, in indexBoardID) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"usb\":"
		out.RawString(prefix[1:])
		out.String(string(in.USB))
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v indexBoardID) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex8(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v indexBoardID) MarshalEasyJSON(w *jwriter.Writer) {
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex8(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *indexBoardID) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex8(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *indexBoardID) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex8(l, v)
}
func easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex9(in *jlexer.Lexer, out *indexBoard) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "name":
			out.Name = string(in.String())
		case "id":
			if in.IsNull() {
				in.Skip()
				out.ID = nil
			} else {
				in.Delim('[')
				if out.ID == nil {
					if !in.IsDelim(']') {
						out.ID = make([]indexBoardID, 0, 4)
					} else {
						out.ID = []indexBoardID{}
					}
				} else {
					out.ID = (out.ID)[:0]
				}
				for !in.IsDelim(']') {
					var v29 indexBoardID
					(v29).UnmarshalEasyJSON(in)
					out.ID = append(out.ID, v29)
					in.WantComma()
				}
				in.Delim(']')
			}
		default:
			switch strings.ToLower(key) {
			case "name":
				out.Name = string(in.String())
			case "id":
				if in.IsNull() {
					in.Skip()
					out.ID = nil
				} else {
					in.Delim('[')
					if out.ID == nil {
						if !in.IsDelim(']') {
							out.ID = make([]indexBoardID, 0, 4)
						} else {
							out.ID = []indexBoardID{}
						}
					} else {
						out.ID = (out.ID)[:0]
					}
					for !in.IsDelim(']') {
						var v30 indexBoardID
						(v30).UnmarshalEasyJSON(in)
						out.ID = append(out.ID, v30)
						in.WantComma()
					}
					in.Delim(']')
				}
			default:
				in.SkipRecursive()
			}
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex9(out *jwriter.Writer, in indexBoard) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"name\":"
		out.RawString(prefix[1:])
		out.String(string(in.Name))
	}
	if len(in.ID) != 0 {
		const prefix string = ",\"id\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v31, v32 := range in.ID {
				if v31 > 0 {
					out.RawByte(',')
				}
				(v32).MarshalEasyJSON(out)
			}
			out.RawByte(']')
		}
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v indexBoard) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex9(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v indexBoard) MarshalEasyJSON(w *jwriter.Writer) {
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex9(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *indexBoard) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex9(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *indexBoard) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex9(l, v)
}
func easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex10(in *jlexer.Lexer, out *Index) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "packages":
			if in.IsNull() {
				in.Skip()
				out.Packages = nil
			} else {
				in.Delim('[')
				if out.Packages == nil {
					if !in.IsDelim(']') {
						out.Packages = make([]*indexPackage, 0, 8)
					} else {
						out.Packages = []*indexPackage{}
					}
				} else {
					out.Packages = (out.Packages)[:0]
				}
				for !in.IsDelim(']') {
					var v33 *indexPackage
					if in.IsNull() {
						in.Skip()
						v33 = nil
					} else {
						if v33 == nil {
							v33 = new(indexPackage)
						}
						(*v33).UnmarshalEasyJSON(in)
					}
					out.Packages = append(out.Packages, v33)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "IsTrusted":
			out.IsTrusted = bool(in.Bool())
		default:
			switch strings.ToLower(key) {
			case "packages":
				if in.IsNull() {
					in.Skip()
					out.Packages = nil
				} else {
					in.Delim('[')
					if out.Packages == nil {
						if !in.IsDelim(']') {
							out.Packages = make([]*indexPackage, 0, 8)
						} else {
							out.Packages = []*indexPackage{}
						}
					} else {
						out.Packages = (out.Packages)[:0]
					}
					for !in.IsDelim(']') {
						var v34 *indexPackage
						if in.IsNull() {
							in.Skip()
							v34 = nil
						} else {
							if v34 == nil {
								v34 = new(indexPackage)
							}
							(*v34).UnmarshalEasyJSON(in)
						}
						out.Packages = append(out.Packages, v34)
						in.WantComma()
					}
					in.Delim(']')
				}
			case "istrusted":
				out.IsTrusted = bool(in.Bool())
			default:
				in.SkipRecursive()
			}
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex10(out *jwriter.Writer, in Index) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"packages\":"
		out.RawString(prefix[1:])
		if in.Packages == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
			out.RawString("null")
		} else {
			out.RawByte('[')
			for v35, v36 := range in.Packages {
				if v35 > 0 {
					out.RawByte(',')
				}
				if v36 == nil {
					out.RawString("null")
				} else {
					(*v36).MarshalEasyJSON(out)
				}
			}
			out.RawByte(']')
		}
	}
	{
		const prefix string = ",\"IsTrusted\":"
		out.RawString(prefix)
		out.Bool(bool(in.IsTrusted))
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v Index) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex10(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v Index) MarshalEasyJSON(w *jwriter.Writer) {
	easyjsonE2a549a6EncodeGithubComArduinoArduinoCliArduinoCoresPackageindex10(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *Index) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex10(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *Index) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjsonE2a549a6DecodeGithubComArduinoArduinoCliArduinoCoresPackageindex10(l, v)
}
