aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library/lux/tool/compiler/meta/archive/descriptor.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/library/lux/tool/compiler/meta/archive/descriptor.lux')
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/archive/descriptor.lux49
1 files changed, 49 insertions, 0 deletions
diff --git a/stdlib/source/library/lux/tool/compiler/meta/archive/descriptor.lux b/stdlib/source/library/lux/tool/compiler/meta/archive/descriptor.lux
new file mode 100644
index 000000000..2c602ac89
--- /dev/null
+++ b/stdlib/source/library/lux/tool/compiler/meta/archive/descriptor.lux
@@ -0,0 +1,49 @@
+(.module:
+ [library
+ [lux (#- Module)
+ [control
+ ["<>" parser
+ ["<b>" binary (#+ Parser)]]]
+ [data
+ ["." text]
+ [collection
+ [set (#+ Set)]]
+ [format
+ ["." binary (#+ Writer)]]]
+ [world
+ [file (#+ Path)]]]]
+ [//
+ ["." artifact (#+ Registry)]])
+
+(type: #export Module
+ Text)
+
+(type: #export Descriptor
+ {#name Module
+ #file Path
+ #hash Nat
+ #state Module_State
+ #references (Set Module)
+ #registry Registry})
+
+(def: #export writer
+ (Writer Descriptor)
+ ($_ binary.and
+ binary.text
+ binary.text
+ binary.nat
+ binary.any
+ (binary.set binary.text)
+ artifact.writer
+ ))
+
+(def: #export parser
+ (Parser Descriptor)
+ ($_ <>.and
+ <b>.text
+ <b>.text
+ <b>.nat
+ (\ <>.monad wrap #.Cached)
+ (<b>.set text.hash <b>.text)
+ artifact.parser
+ ))