#pragma once #include #include #include #include class XignWriter { public: XignWriter(); ~XignWriter(); void clear(); void append(unsigned char* input, std::size_t size); template void write(T input); std::vector& get(); private: void write_buffer(unsigned char* data, std::size_t size); std::size_t appends; std::vector buffer; }; template void XignWriter::write(T input) { unsigned char* temp_data = reinterpret_cast(&input); std::copy(temp_data, temp_data + sizeof(T), std::back_inserter(this->buffer)); }