summaryrefslogtreecommitdiff
path: root/src/other_tools/root_maps/distdir_git_map.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/other_tools/root_maps/distdir_git_map.hpp')
-rw-r--r--src/other_tools/root_maps/distdir_git_map.hpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/other_tools/root_maps/distdir_git_map.hpp b/src/other_tools/root_maps/distdir_git_map.hpp
index c440253b..4c282157 100644
--- a/src/other_tools/root_maps/distdir_git_map.hpp
+++ b/src/other_tools/root_maps/distdir_git_map.hpp
@@ -27,10 +27,12 @@ struct DistdirInfo {
std::shared_ptr<std::vector<ArchiveContent>> repos_to_fetch;
// name of repository for which work is done; used in progress reporting
std::string origin;
+ // create an absent root
+ bool absent{}; /* key */
[[nodiscard]] auto operator==(const DistdirInfo& other) const noexcept
-> bool {
- return content_id == other.content_id;
+ return content_id == other.content_id and absent == other.absent;
}
};
@@ -51,7 +53,10 @@ template <>
struct hash<DistdirInfo> {
[[nodiscard]] auto operator()(const DistdirInfo& dd) const noexcept
-> std::size_t {
- return std::hash<std::string>{}(dd.content_id);
+ size_t seed{};
+ hash_combine<std::string>(&seed, dd.content_id);
+ hash_combine<bool>(&seed, dd.absent);
+ return seed;
}
};
} // namespace std