le2d v0.4.3
2D game engine framework
 
Loading...
Searching...
No Matches
file_data_loader.hpp
Go to the documentation of this file.
1#pragma once
3
4namespace le {
6class FileDataLoader : public IDataLoader {
7 public:
11 [[nodiscard]] static auto upfind(std::string_view suffix, std::string_view leaf_dir = ".") -> std::string;
12
14 explicit FileDataLoader(std::string_view root_dir = ".");
15
16 auto try_load_bytes(std::vector<std::byte>& out, std::string_view uri) const -> bool final;
17 auto try_load_spirv(std::vector<std::uint32_t>& out, std::string_view uri) const -> bool final;
18 auto try_load_string(std::string& out, std::string_view uri) const -> bool final;
19
22 [[nodiscard]] auto save_bytes(std::span<std::byte const> bytes, std::string_view uri) const -> bool;
25 [[nodiscard]] auto save_string(std::string_view text, std::string_view uri) const -> bool;
26
28 [[nodiscard]] auto get_root_dir() const -> std::string_view { return m_root_dir; }
31 auto set_root_dir(std::string_view root_dir) -> bool;
32
35 [[nodiscard]] auto get_path(std::string_view uri) const -> std::string;
38 [[nodiscard]] auto get_uri(std::string_view path) const -> std::string;
39
40 private:
41 template <typename T, typename F>
42 auto from_file(T& out, std::string_view uri, F func) const -> bool;
43
44 std::string m_root_dir{};
45};
46} // namespace le
Concrete IDataLoader that uses the filesystem.
Definition file_data_loader.hpp:6
auto set_root_dir(std::string_view root_dir) -> bool
auto try_load_bytes(std::vector< std::byte > &out, std::string_view uri) const -> bool final
auto try_load_spirv(std::vector< std::uint32_t > &out, std::string_view uri) const -> bool final
auto save_string(std::string_view text, std::string_view uri) const -> bool
auto save_bytes(std::span< std::byte const > bytes, std::string_view uri) const -> bool
auto get_path(std::string_view uri) const -> std::string
auto get_root_dir() const -> std::string_view
Definition file_data_loader.hpp:28
auto get_uri(std::string_view path) const -> std::string
auto try_load_string(std::string &out, std::string_view uri) const -> bool final
static auto upfind(std::string_view suffix, std::string_view leaf_dir=".") -> std::string
Locate a directory by cycling upwards every iteration.
FileDataLoader(std::string_view root_dir=".")
Interface for loading bytes from a data source (usually the filesystem).
Definition data_loader.hpp:14
Definition animation.hpp:8