summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/common/artifact_description.hpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/buildtool/common/artifact_description.hpp b/src/buildtool/common/artifact_description.hpp
index 3820edc4..af80cda0 100644
--- a/src/buildtool/common/artifact_description.hpp
+++ b/src/buildtool/common/artifact_description.hpp
@@ -85,7 +85,12 @@ class ArtifactDescription {
return std::nullopt;
}
- [[nodiscard]] auto Id() const noexcept -> ArtifactIdentifier { return id_; }
+ [[nodiscard]] auto Id() const& noexcept -> ArtifactIdentifier const& {
+ return id_;
+ }
+ [[nodiscard]] auto Id() && noexcept -> ArtifactIdentifier {
+ return std::move(id_);
+ }
[[nodiscard]] auto IsTree() const noexcept -> bool {
return std::holds_alternative<Tree>(data_);
@@ -313,4 +318,13 @@ class ArtifactDescription {
}
};
+namespace std {
+template <>
+struct hash<ArtifactDescription> {
+ [[nodiscard]] auto operator()(ArtifactDescription const& a) const {
+ return std::hash<std::string>{}(a.Id());
+ }
+};
+} // namespace std
+
#endif // INCLUDED_SRC_BUILDTOOL_COMMON_ARTIFACT_DESCRIPTION_HPP