From 669d1d8714b258ffd19f1610028374233a143f4b Mon Sep 17 00:00:00 2001 From: Paul Cristian Sarbu Date: Fri, 8 Sep 2023 18:15:01 +0200 Subject: just-mr: Implement 'absent' roots ...via an 'absent' pragma in repository descriptions. For 'git'-type repositories, first interrogates a 'just serve' remote, if given, before reverting to fetching from the network. --- src/other_tools/root_maps/fpath_git_map.hpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/other_tools/root_maps/fpath_git_map.hpp') diff --git a/src/other_tools/root_maps/fpath_git_map.hpp b/src/other_tools/root_maps/fpath_git_map.hpp index 39cae653..6063aa8d 100644 --- a/src/other_tools/root_maps/fpath_git_map.hpp +++ b/src/other_tools/root_maps/fpath_git_map.hpp @@ -26,10 +26,14 @@ struct FpathInfo { std::filesystem::path fpath{}; /* key */ // create root based on "special" pragma value std::optional pragma_special{std::nullopt}; /* key */ + // create an absent root + bool absent{}; /* key */ [[nodiscard]] auto operator==(const FpathInfo& other) const noexcept -> bool { - return fpath == other.fpath and pragma_special == other.pragma_special; + return fpath == other.fpath and + pragma_special == other.pragma_special and + absent == other.absent; } }; @@ -51,6 +55,7 @@ struct hash { size_t seed{}; hash_combine(&seed, ct.fpath); hash_combine>(&seed, ct.pragma_special); + hash_combine(&seed, ct.absent); return seed; } }; -- cgit v1.2.3