From 8e9ca6eb1247982ccb112d3412a1c07d577af2bb Mon Sep 17 00:00:00 2001 From: Frederico Linhares Date: Mon, 14 Apr 2025 20:16:34 -0300 Subject: feat Read and write signed integers --- src/blu_cat/com/binary_reader.cpp | 19 +++++++++++++++++++ src/blu_cat/com/binary_reader.hpp | 9 +++++++++ src/blu_cat/com/binary_writer.cpp | 18 ++++++++++++++++++ src/blu_cat/com/binary_writer.hpp | 9 +++++++++ 4 files changed, 55 insertions(+) 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 #include namespace @@ -88,6 +89,24 @@ BinaryReader::read_ui64() (UI64)b7 << 8 | (UI64)b8; } +I8 +BinaryReader::read_i8() +{ + return std::bit_cast(this->read_ui8()); +} + +I32 +BinaryReader::read_i32() +{ + return std::bit_cast(this->read_ui32()); +} + +I64 +BinaryReader::read_i64() +{ + return std::bit_cast(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 @@ -87,6 +87,24 @@ BinaryWriter::write_ui64(UI64 var) this->output.put(b8); } +void +BinaryWriter::write_i8(I8 var) +{ + this->write_ui8(std::bit_cast(var)); +} + +void +BinaryWriter::write_i32(I32 var) +{ + this->write_ui32(std::bit_cast(var)); +} + +void +BinaryWriter::write_i64(I64 var) +{ + this->write_ui64(std::bit_cast(var)); +} + void BinaryWriter::write_f32(F32 var) { 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 @@ -40,6 +40,15 @@ public: void write_ui64(UI64 var); + void + write_i8(I8 var); + + void + write_i32(I32 var); + + void + write_i64(I64 var); + void write_f32(F32 var); -- cgit v1.2.3