summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/blu_cat/com/binary_reader.cpp19
-rw-r--r--src/blu_cat/com/binary_reader.hpp9
-rw-r--r--src/blu_cat/com/binary_writer.cpp18
-rw-r--r--src/blu_cat/com/binary_writer.hpp9
4 files changed, 55 insertions, 0 deletions
diff --git a/src/blu_cat/com/binary_reader.cpp b/src/blu_cat/com/binary_reader.cpp
index eae422e..bb4d231 100644
--- a/src/blu_cat/com/binary_reader.cpp
+++ b/src/blu_cat/com/binary_reader.cpp
@@ -16,6 +16,7 @@
#include "binary_reader.hpp"
+#include <bit>
#include <fstream>
namespace
@@ -88,6 +89,24 @@ BinaryReader::read_ui64()
(UI64)b7 << 8 | (UI64)b8;
}
+I8
+BinaryReader::read_i8()
+{
+ return std::bit_cast<I8>(this->read_ui8());
+}
+
+I32
+BinaryReader::read_i32()
+{
+ return std::bit_cast<I32>(this->read_ui32());
+}
+
+I64
+BinaryReader::read_i64()
+{
+ return std::bit_cast<I64>(this->read_ui64());
+}
+
F32
BinaryReader::read_f32()
{
diff --git a/src/blu_cat/com/binary_reader.hpp b/src/blu_cat/com/binary_reader.hpp
index a17dc88..fec88b6 100644
--- a/src/blu_cat/com/binary_reader.hpp
+++ b/src/blu_cat/com/binary_reader.hpp
@@ -48,6 +48,15 @@ public:
UI64
read_ui64();
+ I8
+ read_i8();
+
+ I32
+ read_i32();
+
+ I64
+ read_i64();
+
F32
read_f32();
diff --git a/src/blu_cat/com/binary_writer.cpp b/src/blu_cat/com/binary_writer.cpp
index 7a987d4..7af3b6d 100644
--- a/src/blu_cat/com/binary_writer.cpp
+++ b/src/blu_cat/com/binary_writer.cpp
@@ -88,6 +88,24 @@ BinaryWriter::write_ui64(UI64 var)
}
void
+BinaryWriter::write_i8(I8 var)
+{
+ this->write_ui8(std::bit_cast<UI8>(var));
+}
+
+void
+BinaryWriter::write_i32(I32 var)
+{
+ this->write_ui32(std::bit_cast<UI32>(var));
+}
+
+void
+BinaryWriter::write_i64(I64 var)
+{
+ this->write_ui64(std::bit_cast<UI64>(var));
+}
+
+void
BinaryWriter::write_f32(F32 var)
{
IntAndFloat32bit num;
diff --git a/src/blu_cat/com/binary_writer.hpp b/src/blu_cat/com/binary_writer.hpp
index acf92d8..76bccb3 100644
--- a/src/blu_cat/com/binary_writer.hpp
+++ b/src/blu_cat/com/binary_writer.hpp
@@ -41,6 +41,15 @@ public:
write_ui64(UI64 var);
void
+ write_i8(I8 var);
+
+ void
+ write_i32(I32 var);
+
+ void
+ write_i64(I64 var);
+
+ void
write_f32(F32 var);
void