////////////////////////////////////////////////////////////////////////////////
// Do not modify!
// Generated by codergen -go=rpc_binary.go
////////////////////////////////////////////////////////////////////////////////

package rpc

import (
	"android.googlesource.com/platform/tools/gpu/binary"
)

func init() {
	//struct rpc.Error { msg:string }
	binary.Register(binary.ID{0x47, 0x1c, 0x7d, 0xed, 0x6b, 0xa4, 0x33, 0xdc, 0x04, 0x3f, 0x37, 0xfe, 0xb6, 0x5e, 0x68, 0xa1, 0x42, 0x6a, 0xbb, 0x07}, &Error{})

}

func (o Error) Encode(e *binary.Encoder) error {

	if err := e.String(o.msg); err != nil {
		return err
	}
	return nil
}

func (o *Error) Decode(d *binary.Decoder) error {

	if obj, err := d.String(); err != nil {
		return err
	} else {
		o.msg = string(obj)
	}
	return nil
}
