15 #ifndef SHAKA_EMBEDDED_UTIL_BUFFER_WRITER_H_ 16 #define SHAKA_EMBEDDED_UTIL_BUFFER_WRITER_H_ 21 #include <type_traits> 60 template <
typename T,
typename =
typename std::enable_if<
61 std::is_integral<T>::value>
::type>
64 Write(&value,
sizeof(value));
66 for (
size_t i = 0; i <
sizeof(T); i++) {
68 WriteByte((value >> ((
sizeof(T) - i - 1) * 8)) & 0xff);
76 void Write(
const std::vector<uint8_t>& data) {
77 Write(data.data(), data.size());
85 void Write(
const void* src,
size_t src_size);
95 #endif // SHAKA_EMBEDDED_UTIL_BUFFER_WRITER_H_
void Write(T value, Endianness endian=kBigEndian)
BufferWriter(uint8_t *data, size_t data_size)
void WriteTag(const char(&tag)[5])
void Write(const std::vector< uint8_t > &data)
void WriteByte(uint8_t byte)
size_t BytesRemaining() const