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

package blueprint

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

func init() {
	globResultCacheGobRegId = gobtools.RegisterType(func() gobtools.CustomDec { return new(globResultCache) })
	VariationGobRegId = gobtools.RegisterType(func() gobtools.CustomDec { return new(Variation) })
}

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

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

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

	if err = gobtools.EncodeSimple(buf, r.Result); err != nil {
		return err
	}
	return err
}

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

	err = gobtools.DecodeString(buf, &r.Pattern)
	if err != nil {
		return err
	}

	var val3 int32
	err = gobtools.DecodeSimple[int32](buf, &val3)
	if err != nil {
		return err
	}
	if val3 != -1 {
		r.Excludes = make([]string, val3)
		for val4 := 0; val4 < int(val3); val4++ {
			err = gobtools.DecodeString(buf, &r.Excludes[val4])
			if err != nil {
				return err
			}
		}
	}

	err = gobtools.DecodeSimple[uint64](buf, &r.Result)
	if err != nil {
		return err
	}

	return err
}

var globResultCacheGobRegId int16

func (r globResultCache) GetTypeId() int16 {
	return globResultCacheGobRegId
}

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

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

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

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

	err = gobtools.DecodeString(buf, &r.Mutator)
	if err != nil {
		return err
	}

	err = gobtools.DecodeString(buf, &r.Variation)
	if err != nil {
		return err
	}

	return err
}

var VariationGobRegId int16

func (r Variation) GetTypeId() int16 {
	return VariationGobRegId
}
