34 lines
521 B
C++
34 lines
521 B
C++
|
#pragma once
|
||
|
#include <base/ErrorOr.hpp>
|
||
|
#include <bolt/Errors.hpp>
|
||
|
#include <functional>
|
||
|
|
||
|
namespace lightningbolt {
|
||
|
|
||
|
struct BoltReader {
|
||
|
struct File {
|
||
|
std::string_view filename;
|
||
|
u16 index;
|
||
|
u16 gid;
|
||
|
|
||
|
bool compressed;
|
||
|
|
||
|
u8* uncompressedData { nullptr };
|
||
|
usize uncompressedSize;
|
||
|
|
||
|
};
|
||
|
|
||
|
BoltReader();
|
||
|
~BoltReader();
|
||
|
|
||
|
ErrorOr<void> OpenBolt(const fs::path& path);
|
||
|
|
||
|
void ForEachFile(std::function<bool(File&)> f);
|
||
|
|
||
|
private:
|
||
|
struct Impl;
|
||
|
Unique<Impl> impl;
|
||
|
};
|
||
|
|
||
|
} // namespace lightningbolt
|