summaryrefslogtreecommitdiff
path: root/binparse/output.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'binparse/output.cpp')
-rw-r--r--binparse/output.cpp61
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;
+}
+
+}