aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/target/jvm/encoding/unsigned.lux
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--stdlib/source/lux/target/jvm/encoding/unsigned.lux120
1 files changed, 0 insertions, 120 deletions
diff --git a/stdlib/source/lux/target/jvm/encoding/unsigned.lux b/stdlib/source/lux/target/jvm/encoding/unsigned.lux
deleted file mode 100644
index 4cff01d68..000000000
--- a/stdlib/source/lux/target/jvm/encoding/unsigned.lux
+++ /dev/null
@@ -1,120 +0,0 @@
-(.module:
- [lux (#- nat)
- [abstract
- [equivalence (#+ Equivalence)]
- [order (#+ Order)]]
- [control
- ["." try (#+ Try)]
- ["." exception (#+ exception:)]]
- [data
- [text
- ["%" format (#+ format)]]
- ["." format #_
- ["#" binary (#+ Writer)]]]
- [macro
- ["." template]]
- [math
- [number
- ["n" nat]
- ["." i64]]]
- [type
- abstract]])
-
-(abstract: #export (Unsigned brand)
- Nat
-
- (def: #export value
- (-> (Unsigned Any) Nat)
- (|>> :representation))
-
- (implementation: #export equivalence
- (All [brand] (Equivalence (Unsigned brand)))
- (def: (= reference sample)
- (n.= (:representation reference)
- (:representation sample))))
-
- (implementation: #export order
- (All [brand] (Order (Unsigned brand)))
-
- (def: &equivalence ..equivalence)
- (def: (< reference sample)
- (n.< (:representation reference)
- (:representation sample))))
-
- (exception: #export (value_exceeds_the_maximum {type Name}
- {value Nat}
- {maximum (Unsigned Any)})
- (exception.report
- ["Type" (%.name type)]
- ["Value" (%.nat value)]
- ["Maximum" (%.nat (:representation maximum))]))
-
- (exception: #export [brand] (subtraction_cannot_yield_negative_value
- {type Name}
- {parameter (Unsigned brand)}
- {subject (Unsigned brand)})
- (exception.report
- ["Type" (%.name type)]
- ["Parameter" (%.nat (:representation parameter))]
- ["Subject" (%.nat (:representation subject))]))
-
- (template [<bytes> <name> <size> <constructor> <maximum> <+> <-> <max>]
- [(with_expansions [<raw> (template.identifier [<name> "'"])]
- (abstract: #export <raw> Any)
- (type: #export <name> (Unsigned <raw>)))
-
- (def: #export <size> <bytes>)
-
- (def: #export <maximum>
- <name>
- (|> <bytes> (n.* i64.bits_per_byte) i64.mask :abstraction))
-
- (def: #export (<constructor> value)
- (-> Nat (Try <name>))
- (if (n.<= (:representation <maximum>) value)
- (#try.Success (:abstraction value))
- (exception.throw ..value_exceeds_the_maximum [(name_of <name>) value <maximum>])))
-
- (def: #export (<+> parameter subject)
- (-> <name> <name> (Try <name>))
- (<constructor>
- (n.+ (:representation parameter)
- (:representation subject))))
-
- (def: #export (<-> parameter subject)
- (-> <name> <name> (Try <name>))
- (let [parameter' (:representation parameter)
- subject' (:representation subject)]
- (if (n.<= subject' parameter')
- (#try.Success (:abstraction (n.- parameter' subject')))
- (exception.throw ..subtraction_cannot_yield_negative_value [(name_of <name>) parameter subject]))))
-
- (def: #export (<max> left right)
- (-> <name> <name> <name>)
- (:abstraction (n.max (:representation left)
- (:representation right))))]
-
- [1 U1 bytes/1 u1 maximum/1 +/1 -/1 max/1]
- [2 U2 bytes/2 u2 maximum/2 +/2 -/2 max/2]
- [4 U4 bytes/4 u4 maximum/4 +/4 -/4 max/4]
- )
-
- (template [<name> <from> <to>]
- [(def: #export <name>
- (-> <from> <to>)
- (|>> :transmutation))]
-
- [lift/2 U1 U2]
- [lift/4 U2 U4]
- )
-
- (template [<writer_name> <type> <writer>]
- [(def: #export <writer_name>
- (Writer <type>)
- (|>> :representation <writer>))]
-
- [writer/1 U1 format.bits/8]
- [writer/2 U2 format.bits/16]
- [writer/4 U4 format.bits/32]
- )
- )