aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/program/aedifex/dependency
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--stdlib/source/program/aedifex/dependency/status.lux35
1 files changed, 35 insertions, 0 deletions
diff --git a/stdlib/source/program/aedifex/dependency/status.lux b/stdlib/source/program/aedifex/dependency/status.lux
new file mode 100644
index 000000000..fa62f643e
--- /dev/null
+++ b/stdlib/source/program/aedifex/dependency/status.lux
@@ -0,0 +1,35 @@
+(.module:
+ [lux #*
+ [abstract
+ [equivalence (#+ Equivalence)]]
+ [data
+ ["." sum]
+ ["." product]]]
+ ["." /// #_
+ ["#." hash (#+ Hash SHA-1 MD5)]])
+
+(type: #export Status
+ #Unverified
+ (#Partial (Either (Hash SHA-1)
+ (Hash MD5)))
+ (#Verified (Hash SHA-1) (Hash MD5)))
+
+(structure: any-equivalence
+ (Equivalence Any)
+
+ (def: (= _ _)
+ true))
+
+(def: #export equivalence
+ (Equivalence Status)
+ ($_ sum.equivalence
+ ..any-equivalence
+ ($_ sum.equivalence
+ ///hash.equivalence
+ ///hash.equivalence
+ )
+ ($_ product.equivalence
+ ///hash.equivalence
+ ///hash.equivalence
+ )
+ ))