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

package blueprint

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

func init() {
	providerKeyGobRegId = gobtools.RegisterType(func() gobtools.CustomDec { return new(providerKey) })
}

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

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

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

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

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

	var val1 int64
	err = gobtools.DecodeSimple[int64](buf, &val1)
	if err != nil {
		return err
	}
	r.id = int(val1)

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

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

	return err
}

var providerKeyGobRegId int16

func (r providerKey) GetTypeId() int16 {
	return providerKeyGobRegId
}
