aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/target/jvm/field.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/lux/target/jvm/field.lux')
-rw-r--r--stdlib/source/lux/target/jvm/field.lux32
1 files changed, 14 insertions, 18 deletions
diff --git a/stdlib/source/lux/target/jvm/field.lux b/stdlib/source/lux/target/jvm/field.lux
index 1535ff639..f050a13a5 100644
--- a/stdlib/source/lux/target/jvm/field.lux
+++ b/stdlib/source/lux/target/jvm/field.lux
@@ -12,7 +12,7 @@
[number (#+)
[i64 (#+)]]
[format
- [".F" binary (#+ Writer Format) ("#@." monoid)]]
+ [".F" binary (#+ Writer) ("#@." monoid)]]
[collection
["." row (#+ Row)]]]
[type
@@ -51,29 +51,25 @@
//index.equivalence
(row.equivalence //attribute.equivalence)))
-(def: #export (reader pool)
+(def: #export (parser pool)
(-> Pool (Parser Field))
($_ <>.and
- (get@ #binaryF.reader modifier.format)
- (get@ #binaryF.reader //index.format)
- (get@ #binaryF.reader //index.format)
- (<2>.row/16 (//attribute.reader pool))))
+ modifier.parser
+ //index.parser
+ //index.parser
+ (<2>.row/16 (//attribute.parser pool))))
(def: #export (writer field)
(Writer Field)
- (let [attribute-format (: (Format Attribute)
- {## TODO: Get rid of this dirty hack ASAP
- #binaryF.reader (<>.fail "")
- #binaryF.writer //attribute.writer})]
- (`` ($_ binaryF@compose
- (~~ (template [<format> <slot>]
- [((get@ #binaryF.writer <format>) (get@ <slot> field))]
+ (`` ($_ binaryF@compose
+ (~~ (template [<writer> <slot>]
+ [(<writer> (get@ <slot> field))]
- [modifier.format #modifier]
- [//index.format #name]
- [//index.format #descriptor]
- [(binaryF.row/16 attribute-format) #attributes]))
- ))))
+ [modifier.writer #modifier]
+ [//index.writer #name]
+ [//index.writer #descriptor]
+ [(binaryF.row/16 //attribute.writer) #attributes]))
+ )))
(def: #export (field modifier name descriptor attributes)
(-> (Modifier Field) UTF8 (Descriptor (Value Any)) (Row Attribute)