diff options
Diffstat (limited to 'include/ingen/URI.hpp')
-rw-r--r-- | include/ingen/URI.hpp | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/include/ingen/URI.hpp b/include/ingen/URI.hpp index b8108224..53812c4b 100644 --- a/include/ingen/URI.hpp +++ b/include/ingen/URI.hpp @@ -17,32 +17,30 @@ #ifndef INGEN_URI_HPP #define INGEN_URI_HPP -#include "ingen/FilePath.hpp" -#include "ingen/ingen.h" -#include "serd/serd.h" -#include "sord/sordmm.hpp" - -#include <boost/utility/string_view.hpp> // IWYU pragma: export -#include <boost/utility/string_view_fwd.hpp> // IWYU pragma: export +#include <ingen/FilePath.hpp> +#include <ingen/ingen.h> +#include <serd/serd.h> +#include <sord/sordmm.hpp> #include <cstddef> #include <cstdint> #include <ostream> #include <string> +#include <string_view> namespace ingen { class INGEN_API URI { public: - using Chunk = boost::string_view; + using Chunk = std::string_view; URI(); explicit URI(const std::string& str); explicit URI(const char* str); URI(const std::string& str, const URI& base); URI(const Sord::Node& node); - URI(SerdNode node); + URI(const SerdNode& node); explicit URI(const FilePath& path); URI(const URI& uri); @@ -54,10 +52,11 @@ public: ~URI(); URI make_relative(const URI& base) const; + URI make_relative(const URI& base, const URI& root) const; bool empty() const { return !_node.buf; } - std::string string() const { return std::string(c_str(), _node.n_bytes); } + std::string string() const { return {c_str(), _node.n_bytes}; } size_t length() const { return _node.n_bytes; } const char* c_str() const @@ -99,10 +98,10 @@ public: } private: - URI(SerdNode node, SerdURI uri); + URI(const SerdNode& node, const SerdURI& uri); static Chunk make_chunk(const SerdChunk& chunk) { - return Chunk(reinterpret_cast<const char*>(chunk.buf), chunk.len); + return {reinterpret_cast<const char*>(chunk.buf), chunk.len}; } SerdURI _uri; @@ -173,4 +172,4 @@ operator<<(std::basic_ostream<Char, Traits>& os, const URI& uri) } // namespace ingen -#endif // INGEN_URI_HPP +#endif // INGEN_URI_HPP |