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

package android

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

func init() {
	PhonyInfoGobRegId = gobtools.RegisterType(func() gobtools.CustomDec { return new(PhonyInfo) })
}

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

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

func (r *PhonyInfo) 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.Phonies = make(map[string]Paths, val2)
		for val3 := 0; val3 < int(val2); val3++ {
			var k string
			var v Paths
			err = gobtools.DecodeString(buf, &k)
			if err != nil {
				return err
			}
			var val7 int32
			err = gobtools.DecodeSimple[int32](buf, &val7)
			if err != nil {
				return err
			}
			if val7 != -1 {
				v = make([]Path, val7)
				for val8 := 0; val8 < int(val7); val8++ {
					if val10, err := gobtools.DecodeInterface(ctx, buf); err != nil {
						return err
					} else if val10 == nil {
						v[val8] = nil
					} else {
						v[val8] = val10.(Path)
					}
				}
			}
			r.Phonies[k] = v
		}
	}

	return err
}

var PhonyInfoGobRegId int16

func (r PhonyInfo) GetTypeId() int16 {
	return PhonyInfoGobRegId
}
