aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr/flake/flakeref.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/libexpr/flake/flakeref.cc')
-rw-r--r--src/libexpr/flake/flakeref.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/libexpr/flake/flakeref.cc b/src/libexpr/flake/flakeref.cc
index 4ce326c0b..4930d03ce 100644
--- a/src/libexpr/flake/flakeref.cc
+++ b/src/libexpr/flake/flakeref.cc
@@ -255,6 +255,23 @@ FlakeRef FlakeRef::baseRef() const // Removes the ref and rev from a FlakeRef.
return result;
}
+bool FlakeRef::contains(const FlakeRef & other) const
+{
+ if (!(data == other.data))
+ return false;
+
+ if (ref && ref != other.ref)
+ return false;
+
+ if (rev && rev != other.rev)
+ return false;
+
+ if (subdir != other.subdir)
+ return false;
+
+ return true;
+}
+
std::optional<FlakeRef> parseFlakeRef(
const std::string & uri, bool allowRelative)
{