std::string& path_var,
std::string& stats_file_var) const
{
- std::string name_string = name.to_string();
- path_var =
- Util::get_path_in_cache(config.cache_dir(), 2, name_string, suffix);
+ const std::string name_string = name.to_string() + std::string(suffix);
+ path_var = Util::get_path_in_cache(config.cache_dir(), 2, name_string);
stats_file_var =
fmt::format("{}/{}/stats", config.cache_dir(), name_string[0]);
}
}
std::string
-get_path_in_cache(string_view cache_dir,
- uint8_t level,
- string_view name,
- string_view suffix)
+get_path_in_cache(string_view cache_dir, uint8_t level, string_view name)
{
assert(level >= 1 && level <= 8);
assert(name.length() >= level);
std::string path(cache_dir);
- path.reserve(path.size() + level * 2 + 1 + name.length() - level
- + suffix.length());
+ path.reserve(path.size() + level * 2 + 1 + name.length() - level);
for (uint8_t i = 0; i < level; ++i) {
path.push_back('/');
path.push_back('/');
string_view name_remaining = name.substr(level);
path.append(name_remaining.data(), name_remaining.length());
- path.append(suffix.data(), suffix.length());
return path;
}
std::string get_relative_path(nonstd::string_view dir,
nonstd::string_view path);
-// Join `cache_dir`, a '/', `name` and `suffix` into a single path and return
-// it. Additionally, `level` single-character, '/'-separated subpaths are split
-// from the beginning of `name` before joining them all.
+// Join `cache_dir`, a '/' and `name` into a single path and return it.
+// Additionally, `level` single-character, '/'-separated subpaths are split from
+// the beginning of `name` before joining them all.
std::string get_path_in_cache(nonstd::string_view cache_dir,
uint8_t level,
- nonstd::string_view name,
- nonstd::string_view suffix);
+ nonstd::string_view name);
// Write bytes in big endian order from an integer value.
//
TEST_CASE("Util::get_path_in_cache")
{
- CHECK(Util::get_path_in_cache("/zz/ccache", 1, "ABCDEF", ".suffix")
+ CHECK(Util::get_path_in_cache("/zz/ccache", 1, "ABCDEF.suffix")
== "/zz/ccache/A/BCDEF.suffix");
- CHECK(Util::get_path_in_cache("/zz/ccache", 4, "ABCDEF", ".suffix")
+ CHECK(Util::get_path_in_cache("/zz/ccache", 4, "ABCDEF.suffix")
== "/zz/ccache/A/B/C/D/EF.suffix");
}