#pragma once

#include "ehs/EHS.h"
#include "ehs/Str.h"
#include "ehs/Serializer.h"

namespace ehs
{
	class EHS_LIB_IO PNG_Chunk
	{
	private:
		Str_8 id;
		UInt_64 hashId;
		Serializer<UInt_64> data;
		Byte crc[4];

	public:
		PNG_Chunk();

		PNG_Chunk(const Str_8& id, const Serializer<UInt_64>& data, const Byte crc[4]);

		PNG_Chunk(const PNG_Chunk& chunk);

		PNG_Chunk& operator=(const PNG_Chunk& chunk);

		Str_8 GetId() const;

		UInt_64 GetHashId() const;

		Serializer<UInt_64>* GetData();

		const unsigned char* GetCRC() const;
	};
}