mirror of
https://github.com/MonsterDruide1/OdysseyDecomp
synced 2026-05-11 17:58:18 +00:00
72 lines
3.2 KiB
C++
72 lines
3.2 KiB
C++
#pragma once
|
|
|
|
#include "Library/Yaml/ByamlData.h"
|
|
#include "Library/Yaml/ByamlHeader.h"
|
|
|
|
namespace al {
|
|
class ByamlIter {
|
|
public:
|
|
ByamlIter();
|
|
ByamlIter(const u8* data);
|
|
ByamlIter(const u8* data, const u8* root_node);
|
|
|
|
bool isValid() const;
|
|
bool isTypeHash() const;
|
|
bool isTypeArray() const;
|
|
bool isTypeContainer() const;
|
|
bool isExistKey(const char* key) const;
|
|
s32 getKeyIndex(const char* key) const;
|
|
bool isInvertOrder() const;
|
|
s32 getSize() const;
|
|
ByamlIter getIterByIndex(s32 index) const;
|
|
bool getByamlDataByIndex(ByamlData* data, s32 index) const;
|
|
ByamlIter getIterByKey(const char* key) const;
|
|
bool getByamlDataByKey(ByamlData* data, const char* key) const;
|
|
bool getByamlDataByKeyIndex(ByamlData* data, s32 index) const;
|
|
bool getByamlDataAndKeyName(ByamlData* data, const char** key, s32 index) const;
|
|
bool getKeyName(const char** key, s32 index) const;
|
|
bool tryGetIterByIndex(ByamlIter* iter, s32 index) const;
|
|
bool tryGetIterAndKeyNameByIndex(ByamlIter* iter, const char** key, s32 index) const;
|
|
bool tryGetIterByKey(ByamlIter* iter, const char* key) const;
|
|
bool tryGetStringByKey(const char** value, const char* key) const;
|
|
bool tryConvertString(const char** value, const ByamlData* data) const;
|
|
bool tryGetBinaryByKey(const u8** value, s32* size, const char* key) const;
|
|
bool tryConvertBinary(const u8** value, s32* size, const ByamlData* data) const;
|
|
bool tryGetBoolByKey(bool* value, const char* key) const;
|
|
bool tryConvertBool(bool* value, const ByamlData* data) const;
|
|
bool tryGetIntByKey(s32* value, const char* key) const;
|
|
bool tryConvertInt(s32* value, const ByamlData* data) const;
|
|
bool tryGetUIntByKey(u32* value, const char* key) const;
|
|
bool tryConvertUInt(u32* value, const ByamlData* data) const;
|
|
bool tryGetFloatByKey(f32* value, const char* key) const;
|
|
bool tryConvertFloat(f32* value, const ByamlData* data) const;
|
|
bool tryGetInt64ByKey(s64* value, const char* key) const;
|
|
bool tryConvertInt64(s64* value, const ByamlData* data) const;
|
|
bool tryGetUInt64ByKey(u64* value, const char* key) const;
|
|
bool tryConvertUInt64(u64* value, const ByamlData* data) const;
|
|
bool tryGetDoubleByKey(f64* value, const char* key) const;
|
|
bool tryConvertDouble(f64* value, const ByamlData* data) const;
|
|
bool tryGetStringByIndex(const char** value, s32 index) const;
|
|
bool tryGetBinaryByIndex(const u8** value, s32* size, s32 index) const;
|
|
bool tryGetBoolByIndex(bool* value, s32 index) const;
|
|
bool tryGetIntByIndex(s32* value, s32 index) const;
|
|
bool tryGetUIntByIndex(u32* value, s32 index) const;
|
|
bool tryGetFloatByIndex(f32* value, s32 index) const;
|
|
bool tryGetInt64ByIndex(s64* value, s32 index) const;
|
|
bool tryGetUInt64ByIndex(u64* value, s32 index) const;
|
|
bool tryGetDoubleByIndex(f64* value, s32 index) const;
|
|
bool tryConvertIter(ByamlIter* iter, const ByamlData* data) const;
|
|
bool isEqualData(const ByamlIter& other) const;
|
|
|
|
const ByamlHeader* getHeader() const { return mHeader; }
|
|
|
|
private:
|
|
union {
|
|
const u8* mData;
|
|
const ByamlHeader* mHeader;
|
|
};
|
|
|
|
const u8* mRootNode;
|
|
};
|
|
} // namespace al
|