From 081035db328e651e7b0f2163b977618a0b153620 Mon Sep 17 00:00:00 2001 From: BodgeMaster <> Date: Tue, 28 Jun 2022 15:19:47 +0200 Subject: [PATCH] expose helpers in the header, rename NBT::helpers to NBT::helper --- src/lib/nbt.cpp | 2 +- src/lib/nbt.h++ | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/lib/nbt.cpp b/src/lib/nbt.cpp index 3935af6..4642077 100644 --- a/src/lib/nbt.cpp +++ b/src/lib/nbt.cpp @@ -42,7 +42,7 @@ int endianness_example() { } namespace NBT { - namespace helpers { + namespace helper { ErrorOr readInt8(uint8_t* data[], uint64_t dataSize, uint64_t currentPosition) { //TODO: implement return ErrorOr(0); diff --git a/src/lib/nbt.h++ b/src/lib/nbt.h++ index 2c9d175..1ca5cfb 100644 --- a/src/lib/nbt.h++ +++ b/src/lib/nbt.h++ @@ -40,5 +40,31 @@ #include "error.h++" namespace NBT { + namespace helper { + ErrorOr readInt8(uint8_t* data[], uint64_t dataSize, uint64_t currentPosition); + + ErrorOr readInt16(uint8_t* data[], uint64_t dataSize, uint64_t currentPosition); + + ErrorOr readInt32(uint8_t* data[], uint64_t dataSize, uint64_t currentPosition); + + ErrorOr readInt64(uint8_t* data[], uint64_t dataSize, uint64_t currentPosition); + + //FIXME: we just assume that float is a single-precision IEEE754 + // floating point number + ErrorOr readFloat32(uint8_t* data[], uint64_t dataSize, uint64_t currentPosition); + + //FIXME: we just assume that double is a double-precision IEEE754 + // floating point number + ErrorOr readFloat64(uint8_t* data[], uint64_t dataSize, uint64_t currentPosition); + + ErrorOr> readInt8Array(uint8_t* data[], uint64_t dataSize, uint64_t currentPosition); + + //ErrorOr<> readString(uint8_t* data[], uint64_t dataSize, uint64_t currentPosition); + + ErrorOr> readInt32Array(uint8_t* data[], uint64_t dataSize, uint64_t currentPosition); + + ErrorOr> readInt64Array(uint8_t* data[], uint64_t dataSize, uint64_t currentPosition); + } + bool validateRawNBTData(uint8_t* data[], int length); }