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); }