package encoding

// encoding 定义gcl中用到的marshaler

type UtilMarshaler interface {

	// MarshalUtil append the marshaled data to data and return the appended data.
	// The input data coulde be nil. If any error happens, returned []byte is the
	// same as input data. The returned []byte may be re-allocate memory.
	MarshalUtil(data []byte) ([]byte, error)
}

type UtilUnmarshaler interface {
	// UnmarshalUtil unmarshal from data, and return the total consumed bytes.
	UnmarshalUtil(data []byte) (uint64, error)
}
