diff options
Diffstat (limited to 'binparse/output.cpp')
| -rw-r--r-- | binparse/output.cpp | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/binparse/output.cpp b/binparse/output.cpp new file mode 100644 index 0000000..78babd8 --- /dev/null +++ b/binparse/output.cpp @@ -0,0 +1,61 @@ +#include "output.hpp" + +#include <iomanip> + +namespace binparse { + +std::string to_string(Magic16 magic) { + char* c = reinterpret_cast<char*>(&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<uint8_t>(v); +} + +std::ostream& operator<<(std::ostream& os, Offset8 o) +{ + return os << std::hex << std::setw(2) << std::setfill('0') << static_cast<uint8_t>(o); +} + +std::ostream& operator<<(std::ostream& os, Magic16 m) { + return os << std::hex << std::setw(4) << std::setfill('0') << static_cast<uint16_t>(m) << " (" << to_string(m) << ")"; +} + +std::ostream& operator<<(std::ostream& os, Value16 v) { + return os << std::dec << static_cast<uint16_t>(v); +} + +std::ostream& operator<<(std::ostream& os, Offset16 o) { + return os << std::hex << std::setw(sizeof(o) * 2) << std::setfill('0') << static_cast<uint16_t>(o); +} + +std::ostream& operator<<(std::ostream& os, Value32 v) { + return os << std::dec << static_cast<uint32_t>(v); +} + +std::ostream& operator<<(std::ostream& os, Offset32 o) { + return os << std::hex << std::setw(sizeof(o) * 2) << std::setfill('0') << static_cast<uint32_t>(o); +} + +std::ostream&operator<<(std::ostream& os, std::array<uint8_t, 8> a) +{ + return os; +} + +std::ostream&operator<<(std::ostream& os, std::array<uint8_t, 22> a) +{ + return os; +} + +std::ostream&operator<<(std::ostream& os, std::vector<uint8_t> vec) +{ + return os; +} + +} |
