// Code generated by go run gob_gen.go; DO NOT EDIT.

package cc

import (
	"android/soong/android"
	"bytes"
	"github.com/google/blueprint/gobtools"
)

func init() {
	ObjectsGobRegId = gobtools.RegisterType(func() gobtools.CustomDec { return new(Objects) })
	KytheFilePairGobRegId = gobtools.RegisterType(func() gobtools.CustomDec { return new(KytheFilePair) })
}

func (r Objects) Encode(ctx gobtools.EncContext, buf *bytes.Buffer) error {
	var err error

	if r.objFiles == nil {
		if err = gobtools.EncodeSimple(buf, int32(-1)); err != nil {
			return err
		}
	} else {
		if err = gobtools.EncodeSimple(buf, int32(len(r.objFiles))); err != nil {
			return err
		}
		for val1 := 0; val1 < len(r.objFiles); val1++ {
			if err = gobtools.EncodeInterface(ctx, buf, r.objFiles[val1]); err != nil {
				return err
			}
		}
	}

	if r.tidyFiles == nil {
		if err = gobtools.EncodeSimple(buf, int32(-1)); err != nil {
			return err
		}
	} else {
		if err = gobtools.EncodeSimple(buf, int32(len(r.tidyFiles))); err != nil {
			return err
		}
		for val2 := 0; val2 < len(r.tidyFiles); val2++ {
			if err = gobtools.EncodeInterface(ctx, buf, r.tidyFiles[val2]); err != nil {
				return err
			}
		}
	}

	if r.tidyDepFiles == nil {
		if err = gobtools.EncodeSimple(buf, int32(-1)); err != nil {
			return err
		}
	} else {
		if err = gobtools.EncodeSimple(buf, int32(len(r.tidyDepFiles))); err != nil {
			return err
		}
		for val3 := 0; val3 < len(r.tidyDepFiles); val3++ {
			if err = gobtools.EncodeInterface(ctx, buf, r.tidyDepFiles[val3]); err != nil {
				return err
			}
		}
	}

	if r.coverageFiles == nil {
		if err = gobtools.EncodeSimple(buf, int32(-1)); err != nil {
			return err
		}
	} else {
		if err = gobtools.EncodeSimple(buf, int32(len(r.coverageFiles))); err != nil {
			return err
		}
		for val4 := 0; val4 < len(r.coverageFiles); val4++ {
			if err = gobtools.EncodeInterface(ctx, buf, r.coverageFiles[val4]); err != nil {
				return err
			}
		}
	}

	if r.sAbiDumpFiles == nil {
		if err = gobtools.EncodeSimple(buf, int32(-1)); err != nil {
			return err
		}
	} else {
		if err = gobtools.EncodeSimple(buf, int32(len(r.sAbiDumpFiles))); err != nil {
			return err
		}
		for val5 := 0; val5 < len(r.sAbiDumpFiles); val5++ {
			if err = gobtools.EncodeInterface(ctx, buf, r.sAbiDumpFiles[val5]); err != nil {
				return err
			}
		}
	}

	if r.kytheFiles == nil {
		if err = gobtools.EncodeSimple(buf, int32(-1)); err != nil {
			return err
		}
	} else {
		if err = gobtools.EncodeSimple(buf, int32(len(r.kytheFiles))); err != nil {
			return err
		}
		for val6 := 0; val6 < len(r.kytheFiles); val6++ {
			if err = r.kytheFiles[val6].Encode(ctx, buf); err != nil {
				return err
			}
		}
	}
	return err
}

func (r *Objects) Decode(ctx gobtools.EncContext, buf *bytes.Reader) error {
	var err error

	var val3 int32
	err = gobtools.DecodeSimple[int32](buf, &val3)
	if err != nil {
		return err
	}
	if val3 != -1 {
		r.objFiles = make([]android.Path, val3)
		for val4 := 0; val4 < int(val3); val4++ {
			if val6, err := gobtools.DecodeInterface(ctx, buf); err != nil {
				return err
			} else if val6 == nil {
				r.objFiles[val4] = nil
			} else {
				r.objFiles[val4] = val6.(android.Path)
			}
		}
	}

	var val9 int32
	err = gobtools.DecodeSimple[int32](buf, &val9)
	if err != nil {
		return err
	}
	if val9 != -1 {
		r.tidyFiles = make([]android.Path, val9)
		for val10 := 0; val10 < int(val9); val10++ {
			if val12, err := gobtools.DecodeInterface(ctx, buf); err != nil {
				return err
			} else if val12 == nil {
				r.tidyFiles[val10] = nil
			} else {
				r.tidyFiles[val10] = val12.(android.Path)
			}
		}
	}

	var val15 int32
	err = gobtools.DecodeSimple[int32](buf, &val15)
	if err != nil {
		return err
	}
	if val15 != -1 {
		r.tidyDepFiles = make([]android.Path, val15)
		for val16 := 0; val16 < int(val15); val16++ {
			if val18, err := gobtools.DecodeInterface(ctx, buf); err != nil {
				return err
			} else if val18 == nil {
				r.tidyDepFiles[val16] = nil
			} else {
				r.tidyDepFiles[val16] = val18.(android.Path)
			}
		}
	}

	var val21 int32
	err = gobtools.DecodeSimple[int32](buf, &val21)
	if err != nil {
		return err
	}
	if val21 != -1 {
		r.coverageFiles = make([]android.Path, val21)
		for val22 := 0; val22 < int(val21); val22++ {
			if val24, err := gobtools.DecodeInterface(ctx, buf); err != nil {
				return err
			} else if val24 == nil {
				r.coverageFiles[val22] = nil
			} else {
				r.coverageFiles[val22] = val24.(android.Path)
			}
		}
	}

	var val27 int32
	err = gobtools.DecodeSimple[int32](buf, &val27)
	if err != nil {
		return err
	}
	if val27 != -1 {
		r.sAbiDumpFiles = make([]android.Path, val27)
		for val28 := 0; val28 < int(val27); val28++ {
			if val30, err := gobtools.DecodeInterface(ctx, buf); err != nil {
				return err
			} else if val30 == nil {
				r.sAbiDumpFiles[val28] = nil
			} else {
				r.sAbiDumpFiles[val28] = val30.(android.Path)
			}
		}
	}

	var val33 int32
	err = gobtools.DecodeSimple[int32](buf, &val33)
	if err != nil {
		return err
	}
	if val33 != -1 {
		r.kytheFiles = make([]KytheFilePair, val33)
		for val34 := 0; val34 < int(val33); val34++ {
			if err = r.kytheFiles[val34].Decode(ctx, buf); err != nil {
				return err
			}
		}
	}

	return err
}

var ObjectsGobRegId int16

func (r Objects) GetTypeId() int16 {
	return ObjectsGobRegId
}

func (r KytheFilePair) Encode(ctx gobtools.EncContext, buf *bytes.Buffer) error {
	var err error

	if err = gobtools.EncodeInterface(ctx, buf, r.SrcFile); err != nil {
		return err
	}

	if err = gobtools.EncodeInterface(ctx, buf, r.KzipFile); err != nil {
		return err
	}
	return err
}

func (r *KytheFilePair) Decode(ctx gobtools.EncContext, buf *bytes.Reader) error {
	var err error

	if val2, err := gobtools.DecodeInterface(ctx, buf); err != nil {
		return err
	} else if val2 == nil {
		r.SrcFile = nil
	} else {
		r.SrcFile = val2.(android.Path)
	}

	if val4, err := gobtools.DecodeInterface(ctx, buf); err != nil {
		return err
	} else if val4 == nil {
		r.KzipFile = nil
	} else {
		r.KzipFile = val4.(android.Path)
	}

	return err
}

var KytheFilePairGobRegId int16

func (r KytheFilePair) GetTypeId() int16 {
	return KytheFilePairGobRegId
}
