14 #ifndef OR_TOOLS_BASE_PATH_H_
15 #define OR_TOOLS_BASE_PATH_H_
17 #include <initializer_list>
21 #include "absl/strings/string_view.h"
53 std::initializer_list<absl::string_view> paths);
82 inline std::string
JoinPath() {
return std::string(); }
83 inline std::string
JoinPath(absl::string_view path) {
84 return std::string(path.data(), path.size());
86 std::string
JoinPath(absl::string_view path1, absl::string_view path2);
87 template <
typename... T>
88 inline std::string
JoinPath(absl::string_view path1, absl::string_view path2,
89 absl::string_view path3,
const T&... args) {
91 {path1, path2, path3, args...});
103 template <
typename... T>
113 std::string
AddSlash(absl::string_view path);
120 absl::string_view
Dirname(absl::string_view path);
126 std::pair<absl::string_view, absl::string_view>
SplitPath(
127 absl::string_view path);
134 absl::string_view
Basename(absl::string_view path);
138 absl::string_view
Stem(absl::string_view path);
142 absl::string_view
Extension(absl::string_view path);
165 std::string
CleanPath(absl::string_view path);
std::string JoinPathImpl(bool honor_abs, std::initializer_list< absl::string_view > paths)
absl::string_view Dirname(absl::string_view path)
absl::string_view Stem(absl::string_view path)
std::string CleanPath(const absl::string_view unclean_path)
std::string AddSlash(absl::string_view path)
std::string CollapseSlashes(absl::string_view path)
std::pair< absl::string_view, absl::string_view > SplitPath(absl::string_view path)
std::string JoinPath(absl::string_view path1, absl::string_view path2)
bool IsAbsolutePath(absl::string_view path)
absl::string_view Basename(absl::string_view path)
std::string JoinPathRespectAbsolute(const T &... args)
absl::string_view Extension(absl::string_view path)