diff options
Diffstat (limited to 'src/crepe/api/Asset.h')
-rw-r--r-- | src/crepe/api/Asset.h | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/crepe/api/Asset.h b/src/crepe/api/Asset.h index 685dd3a..bfd0ac7 100644 --- a/src/crepe/api/Asset.h +++ b/src/crepe/api/Asset.h @@ -33,13 +33,29 @@ public: * \param other Possibly different instance of \c Asset to test equality against * \return True if \c this and \c other are equal */ - bool operator == (const Asset & other) const noexcept; + bool operator==(const Asset & other) const noexcept; private: //! path to asset const std::string src; private: + /** + * \brief Locate asset path, or throw exception if it cannot be found + * + * This function resolves asset locations relative to crepe::Config::root_pattern if it is + * set and \p src is a relative path. If \p src is an absolute path, it is canonicalized. + * This function only returns if the file can be found. + * + * \param src Arbitrary path to resource file + * + * \returns \p src if crepe::Config::root_pattern is empty + * \returns Canonical path to \p src + * + * \throws std::runtime_error if root_pattern cannot be found + * \throws std::filesystem::filesystem_error if the resolved path does not exist + * \throws std::filesystem::filesystem_error if the path cannot be canonicalized + */ std::string find_asset(const std::string & src) const; /** * \returns The path to the current executable @@ -52,7 +68,8 @@ private: namespace std { //! Hash helper struct -template<> struct hash<const crepe::Asset> { +template <> +struct hash<const crepe::Asset> { /** * \brief Hash operator for crepe::Asset * @@ -64,5 +81,4 @@ template<> struct hash<const crepe::Asset> { size_t operator()(const crepe::Asset & asset) const noexcept; }; -} - +} // namespace std |