// 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() {
	taggedLsDumpGobRegId = gobtools.RegisterType(func() gobtools.CustomDec { return new(taggedLsDump) })
	TaggedLsDumpsInfoGobRegId = gobtools.RegisterType(func() gobtools.CustomDec { return new(TaggedLsDumpsInfo) })
}

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

	if err = gobtools.EncodeString(buf, string(r.tag)); err != nil {
		return err
	}

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

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

	var val2 string
	err = gobtools.DecodeString(buf, &val2)
	if err != nil {
		return err
	}
	r.tag = lsdumpTag(val2)

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

	return err
}

var taggedLsDumpGobRegId int16

func (r taggedLsDump) GetTypeId() int16 {
	return taggedLsDumpGobRegId
}

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

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

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

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

	return err
}

var TaggedLsDumpsInfoGobRegId int16

func (r TaggedLsDumpsInfo) GetTypeId() int16 {
	return TaggedLsDumpsInfoGobRegId
}
