aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/compiler/meta/archive/signature.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/lux/compiler/meta/archive/signature.lux')
-rw-r--r--stdlib/source/lux/compiler/meta/archive/signature.lux23
1 files changed, 23 insertions, 0 deletions
diff --git a/stdlib/source/lux/compiler/meta/archive/signature.lux b/stdlib/source/lux/compiler/meta/archive/signature.lux
new file mode 100644
index 000000000..5332b79c3
--- /dev/null
+++ b/stdlib/source/lux/compiler/meta/archive/signature.lux
@@ -0,0 +1,23 @@
+(.module:
+ [lux #*
+ [control
+ ["." equivalence (#+ Equivalence)]]
+ [data
+ ["." name]
+ ["." text
+ format]]]
+ [////
+ [default (#+ Version)]])
+
+## Key
+(type: #export Signature
+ {#name Name
+ #version Version})
+
+(def: #export Equivalence<Signature>
+ (Equivalence Signature)
+ (equivalence.product name.Equivalence<Name> text.Equivalence<Text>))
+
+(def: #export (description signature)
+ (-> Signature Text)
+ (format (%name (get@ #name signature)) " " (get@ #version signature)))