diff options
Diffstat (limited to 'lib/nes/common/path-view.hh')
| -rw-r--r-- | lib/nes/common/path-view.hh | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/lib/nes/common/path-view.hh b/lib/nes/common/path-view.hh deleted file mode 100644 index 7741060..0000000 --- a/lib/nes/common/path-view.hh +++ /dev/null @@ -1,52 +0,0 @@ -#pragma once - -#include "nes/common/types.hh" -#include <string_view> - -namespace nes -{ - /// Non-owning copy of a path, useful for iterating over its components. - class path_view - { - std::string_view path_; - - public: - /// An iterator for the path components. - class iterator - { - friend path_view; - - char const* current_{ nullptr }; // Start of the current component - u32 component_length_{ 0 }; // Length of the current component - u32 remaining_{ 0 }; // Number of characters remaining in the buffer, including the current component. - - public: - auto operator==(iterator const& other) -> bool { return current_ == other.current_; } - auto operator!=(iterator const& other) -> bool { return current_ != other.current_; } - - auto operator*() const -> std::string_view; - auto operator++() -> iterator&; - auto operator++(int) -> iterator; - - private: - explicit iterator(char const* current, u32 const component_length, u32 const remaining) - : current_{ current } - , component_length_{ component_length } - , remaining_{ remaining } - { - } - }; - - explicit path_view() = default; - explicit path_view(std::string_view const path) - : path_{ path } - { - } - - auto get_path() const -> std::string_view { return path_; } - - auto begin() const -> iterator; - auto end() const -> iterator; - auto is_empty() const -> bool { return begin() == end(); } - }; -} // namespace nes::app
\ No newline at end of file |
