Luna/libluna/include/luna/PathParser.h
2023-03-10 22:17:16 +01:00

29 lines
537 B
C++

#pragma once
#include <luna/CString.h>
#include <luna/Heap.h>
class PathParser
{
public:
static Result<PathParser> create(const char* path);
PathParser(PathParser&& other);
PathParser(const PathParser&) = delete;
~PathParser();
bool is_absolute() const
{
return *m_original == '/';
}
Option<const char*> next();
private:
PathParser(const char* original, char* copy);
const char* m_original { nullptr };
char* m_copy { nullptr };
bool m_already_called_next { false };
};