19namespace fs = std::filesystem;
29 static constexpr const char* BETWEEN_RELATIVE_AND_FUNCTION_NAME =
"::";
31 static constexpr const char* JSON_EXTENSION =
".json";
32 static constexpr const char* BASE_INIT_STRING =
"arkanjo";
33 static constexpr const char* SOURCE_STRING =
"source";
34 static constexpr const char* HEADER_STRING =
"header";
35 static constexpr const char* INFO_STRING =
"info";
36 static constexpr char BAR =
'/';
38 std::vector<std::string> tokens;
39 size_t position_start_relative_path = -1;
46 static std::vector<std::string> split_path(
const fs::path& path);
52 size_t find_position_start_relative_path()
const;
59 static std::string build_string_path(
const std::vector<std::string>& path_tokens);
66 std::string build_base_path(
const std::string& base)
const;
72 std::vector<std::string> get_tokens_from_relative_path()
const;
79 static std::string remove_extension(std::string& token);
97 explicit Path(
const fs::path& path);
Path manipulation class for tool-specific directory structure.
std::string format_path_message_in_pair() const
Formats path for display.
std::string build_relative_path() const
Builds relative path portion.
std::string build_info_path() const
Builds metadata file path.
std::vector< std::string > get_common_folders(const Path &path) const
Finds common folders with another path.
std::string build_function_name() const
Extracts function name from path.
bool contains_given_pattern(const std::string &pattern) const
Checks for pattern in path.
Path()=default
Default constructor.
bool operator<(const Path &path) const
Path comparison operator.
std::string build_header_path() const
Builds header file path.
std::string build_source_path() const
Builds source file path.
bool is_empty() const
Checks if path is empty.