diff options
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.lux | 49 |
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 + )) |