aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/world/blob.jvm.lux
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--stdlib/source/lux/world/blob.jvm.lux60
1 files changed, 31 insertions, 29 deletions
diff --git a/stdlib/source/lux/world/blob.jvm.lux b/stdlib/source/lux/world/blob.jvm.lux
index d1ee258a3..ce2e39984 100644
--- a/stdlib/source/lux/world/blob.jvm.lux
+++ b/stdlib/source/lux/world/blob.jvm.lux
@@ -5,10 +5,12 @@
["ex" exception (#+ exception:)]
["eq" equivalence]]
[data
- [bit]
[maybe]
[error (#+ Error)]
- [text format]]
+ [text
+ format]
+ [number
+ [i64]]]
[host (#+ import:)]])
(exception: #export (index-out-of-bounds {description Text})
@@ -28,11 +30,11 @@
(def: byte-mask
I64
- (|> +1 (bit.left-shift +8) dec .i64))
+ (|> +1 (i64.left-shift +8) dec .i64))
(def: i64
(-> (primitive "java.lang.Byte") I64)
- (|>> host.byte-to-long (:coerce I64) (bit.and byte-mask)))
+ (|>> host.byte-to-long (:coerce I64) (i64.and byte-mask)))
(def: byte
(-> (I64 Any) (primitive "java.lang.Byte"))
@@ -51,32 +53,32 @@
(def: #export (read/16 idx blob)
(-> Nat Blob (Error I64))
(if (n/< (host.array-length blob) (n/+ +1 idx))
- (#error.Success ($_ bit.or
- (bit.left-shift +8 (..i64 (host.array-read idx blob)))
+ (#error.Success ($_ i64.or
+ (i64.left-shift +8 (..i64 (host.array-read idx blob)))
(..i64 (host.array-read (n/+ +1 idx) blob))))
(ex.throw index-out-of-bounds (%n idx))))
(def: #export (read/32 idx blob)
(-> Nat Blob (Error I64))
(if (n/< (host.array-length blob) (n/+ +3 idx))
- (#error.Success ($_ bit.or
- (bit.left-shift +24 (..i64 (host.array-read idx blob)))
- (bit.left-shift +16 (..i64 (host.array-read (n/+ +1 idx) blob)))
- (bit.left-shift +8 (..i64 (host.array-read (n/+ +2 idx) blob)))
+ (#error.Success ($_ i64.or
+ (i64.left-shift +24 (..i64 (host.array-read idx blob)))
+ (i64.left-shift +16 (..i64 (host.array-read (n/+ +1 idx) blob)))
+ (i64.left-shift +8 (..i64 (host.array-read (n/+ +2 idx) blob)))
(..i64 (host.array-read (n/+ +3 idx) blob))))
(ex.throw index-out-of-bounds (%n idx))))
(def: #export (read/64 idx blob)
(-> Nat Blob (Error I64))
(if (n/< (host.array-length blob) (n/+ +7 idx))
- (#error.Success ($_ bit.or
- (bit.left-shift +56 (..i64 (host.array-read idx blob)))
- (bit.left-shift +48 (..i64 (host.array-read (n/+ +1 idx) blob)))
- (bit.left-shift +40 (..i64 (host.array-read (n/+ +2 idx) blob)))
- (bit.left-shift +32 (..i64 (host.array-read (n/+ +3 idx) blob)))
- (bit.left-shift +24 (..i64 (host.array-read (n/+ +4 idx) blob)))
- (bit.left-shift +16 (..i64 (host.array-read (n/+ +5 idx) blob)))
- (bit.left-shift +8 (..i64 (host.array-read (n/+ +6 idx) blob)))
+ (#error.Success ($_ i64.or
+ (i64.left-shift +56 (..i64 (host.array-read idx blob)))
+ (i64.left-shift +48 (..i64 (host.array-read (n/+ +1 idx) blob)))
+ (i64.left-shift +40 (..i64 (host.array-read (n/+ +2 idx) blob)))
+ (i64.left-shift +32 (..i64 (host.array-read (n/+ +3 idx) blob)))
+ (i64.left-shift +24 (..i64 (host.array-read (n/+ +4 idx) blob)))
+ (i64.left-shift +16 (..i64 (host.array-read (n/+ +5 idx) blob)))
+ (i64.left-shift +8 (..i64 (host.array-read (n/+ +6 idx) blob)))
(..i64 (host.array-read (n/+ +7 idx) blob))))
(ex.throw index-out-of-bounds (%n idx))))
@@ -92,7 +94,7 @@
(-> Nat (I64 Any) Blob (Error Blob))
(if (n/< (host.array-length blob) (n/+ +1 idx))
(exec (|> blob
- (host.array-write idx (..byte (bit.logical-right-shift +8 value)))
+ (host.array-write idx (..byte (i64.logical-right-shift +8 value)))
(host.array-write (n/+ +1 idx) (..byte value)))
(#error.Success blob))
(ex.throw index-out-of-bounds (%n idx))))
@@ -101,9 +103,9 @@
(-> Nat (I64 Any) Blob (Error Blob))
(if (n/< (host.array-length blob) (n/+ +3 idx))
(exec (|> blob
- (host.array-write idx (..byte (bit.logical-right-shift +24 value)))
- (host.array-write (n/+ +1 idx) (..byte (bit.logical-right-shift +16 value)))
- (host.array-write (n/+ +2 idx) (..byte (bit.logical-right-shift +8 value)))
+ (host.array-write idx (..byte (i64.logical-right-shift +24 value)))
+ (host.array-write (n/+ +1 idx) (..byte (i64.logical-right-shift +16 value)))
+ (host.array-write (n/+ +2 idx) (..byte (i64.logical-right-shift +8 value)))
(host.array-write (n/+ +3 idx) (..byte value)))
(#error.Success blob))
(ex.throw index-out-of-bounds (%n idx))))
@@ -112,13 +114,13 @@
(-> Nat (I64 Any) Blob (Error Blob))
(if (n/< (host.array-length blob) (n/+ +7 idx))
(exec (|> blob
- (host.array-write idx (..byte (bit.logical-right-shift +56 value)))
- (host.array-write (n/+ +1 idx) (..byte (bit.logical-right-shift +48 value)))
- (host.array-write (n/+ +2 idx) (..byte (bit.logical-right-shift +40 value)))
- (host.array-write (n/+ +3 idx) (..byte (bit.logical-right-shift +32 value)))
- (host.array-write (n/+ +4 idx) (..byte (bit.logical-right-shift +24 value)))
- (host.array-write (n/+ +5 idx) (..byte (bit.logical-right-shift +16 value)))
- (host.array-write (n/+ +6 idx) (..byte (bit.logical-right-shift +8 value)))
+ (host.array-write idx (..byte (i64.logical-right-shift +56 value)))
+ (host.array-write (n/+ +1 idx) (..byte (i64.logical-right-shift +48 value)))
+ (host.array-write (n/+ +2 idx) (..byte (i64.logical-right-shift +40 value)))
+ (host.array-write (n/+ +3 idx) (..byte (i64.logical-right-shift +32 value)))
+ (host.array-write (n/+ +4 idx) (..byte (i64.logical-right-shift +24 value)))
+ (host.array-write (n/+ +5 idx) (..byte (i64.logical-right-shift +16 value)))
+ (host.array-write (n/+ +6 idx) (..byte (i64.logical-right-shift +8 value)))
(host.array-write (n/+ +7 idx) (..byte value)))
(#error.Success blob))
(ex.throw index-out-of-bounds (%n idx))))