#include "output.hpp" #include namespace binparse { std::string to_string(Magic16 magic) { char* c = reinterpret_cast(&magic); return std::string(c, sizeof(Magic16)); } std::ostream& operator<<(std::ostream& os, uint8_t i) { return os << (unsigned int) i; } std::ostream& operator<<(std::ostream& os, Value8 v) { return os << std::dec << static_cast(v); } std::ostream& operator<<(std::ostream& os, Offset8 o) { return os << std::hex << std::setw(2) << std::setfill('0') << static_cast(o); } std::ostream& operator<<(std::ostream& os, Magic16 m) { return os << std::hex << std::setw(4) << std::setfill('0') << static_cast(m) << " (" << to_string(m) << ")"; } std::ostream& operator<<(std::ostream& os, Value16 v) { return os << std::dec << static_cast(v); } std::ostream& operator<<(std::ostream& os, Offset16 o) { return os << std::hex << std::setw(sizeof(o) * 2) << std::setfill('0') << static_cast(o); } std::ostream&operator<<(std::ostream& os, Value24 v) { std::array va = v; uint32_t tv = (va[2] << 16 | va[1] << 8 | va[0] << 0); return os << std::dec << tv; } std::ostream& operator<<(std::ostream& os, Value32 v) { return os << std::dec << static_cast(v); } std::ostream& operator<<(std::ostream& os, Offset32 o) { return os << std::hex << std::setw(sizeof(o) * 2) << std::setfill('0') << static_cast(o); } std::ostream&operator<<(std::ostream& os, PString8 s) { return os << "(" << std::string(s).size() << ") " << std::string(s); } std::ostream&operator<<(std::ostream& os, std::array a) { return os; } std::ostream&operator<<(std::ostream& os, std::array a) { return os; } std::ostream&operator<<(std::ostream& os, std::vector vec) { return os; } }