#pragma once #include #include #include #include #include namespace NXKit { #define DEFAULT_ROMFS_REGISTRATION \ NXData::resourceProvider = [](const std::string& path) { \ auto res = romfs::get(path); \ return new_shared(res.data(), res.size()); \ }; class NXData { public: [[nodiscard]] std::size_t count() const; [[nodiscard]] const std::byte* data() const; NXData(const std::byte* bytes, std::size_t count, bool freeSource = false); ~NXData(); static std::shared_ptr fromPath(const std::string& path); static std::shared_ptr fromRes(const std::string& path); static std::function(std::string)> resourceProvider; private: std::vector _data; }; }