aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/lang/compiler/default/cache.lux
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--stdlib/source/lux/lang/compiler/default/cache.lux33
1 files changed, 33 insertions, 0 deletions
diff --git a/stdlib/source/lux/lang/compiler/default/cache.lux b/stdlib/source/lux/lang/compiler/default/cache.lux
new file mode 100644
index 000000000..a878e1615
--- /dev/null
+++ b/stdlib/source/lux/lang/compiler/default/cache.lux
@@ -0,0 +1,33 @@
+(.module:
+ lux
+ (lux (data (format [binary #+ Binary]))))
+
+(def: definition
+ (Binary Definition)
+ ($_ binary.seq binary.type binary.code binary.any))
+
+(def: alias
+ (Binary [Text Text])
+ (binary.seq binary.text binary.text))
+
+## TODO: Remove #module-hash, #imports & #module-state ASAP.
+## TODO: Not just from this parser, but from the lux.Module type.
+(def: #export module
+ (Binary Module)
+ ($_ binary.seq
+ ## #module-hash
+ (binary.ignore +0)
+ ## #module-aliases
+ (binary.list ..alias)
+ ## #definitions
+ (binary.list (binary.seq binary.text ..definition))
+ ## #imports
+ (binary.list binary.text)
+ ## #tags
+ (binary.ignore (list))
+ ## #types
+ (binary.ignore (list))
+ ## #module-annotations
+ (binary.maybe binary.code)
+ ## #module-state
+ (binary.ignore #.Cached)))