aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/program/aedifex/dependency.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/program/aedifex/dependency.lux')
-rw-r--r--stdlib/source/program/aedifex/dependency.lux20
1 files changed, 18 insertions, 2 deletions
diff --git a/stdlib/source/program/aedifex/dependency.lux b/stdlib/source/program/aedifex/dependency.lux
index b7b605447..f06b00260 100644
--- a/stdlib/source/program/aedifex/dependency.lux
+++ b/stdlib/source/program/aedifex/dependency.lux
@@ -2,13 +2,14 @@
[lux (#- Type)
[abstract
[equivalence (#+ Equivalence)]
+ [order (#+ Order)]
[hash (#+ Hash)]]
[data
["." product]
- ["." text
+ ["." text ("#\." order)
["%" format (#+ format)]]]]
["." // #_
- ["#" artifact (#+ Artifact)
+ ["#" artifact (#+ Artifact) ("#\." order)
[type (#+ Type)]]])
(type: #export Dependency
@@ -25,3 +26,18 @@
(def: #export equivalence
(Equivalence Dependency)
(\ hash &equivalence))
+
+(implementation: #export order
+ (Order Dependency)
+
+ (def: &equivalence
+ ..equivalence)
+
+ (def: (< reference subject)
+ (<| (or (//\< (get@ #artifact reference)
+ (get@ #artifact subject)))
+
+ (and (//\= (get@ #artifact reference)
+ (get@ #artifact subject)))
+ (text\< (get@ #type reference)
+ (get@ #type subject)))))