aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/data/text/encoding.lux
blob: eb3b618c4552bf06e43a88499eb38c2b457e6c0e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(.module:
  lux
  (lux (data [error #+ Error])
       (world [blob #+ Blob])
       (lang ["_" host])
       [host #+ import:]))

(`` (for {(~~ (static _.jvm))
          (as-is (def: utf8 Text "UTF-8")

                 (import: java/lang/String
                   (new [(Array byte) String])
                   (getBytes [String] (Array byte))))}))

(def: #export (to-utf8 value)
  (-> Text Blob)
  (`` (for {(~~ (static _.jvm))
            (String::getBytes [..utf8] value)})))

(def: #export (from-utf8 value)
  (-> Blob (Error Text))
  (`` (for {(~~ (static _.jvm))
            (#error.Success (String::new [value ..utf8]))})))