aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/data/text/format.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/lux/data/text/format.lux')
-rw-r--r--stdlib/source/lux/data/text/format.lux134
1 files changed, 0 insertions, 134 deletions
diff --git a/stdlib/source/lux/data/text/format.lux b/stdlib/source/lux/data/text/format.lux
deleted file mode 100644
index 6deb80074..000000000
--- a/stdlib/source/lux/data/text/format.lux
+++ /dev/null
@@ -1,134 +0,0 @@
-(.module:
- [lux (#- list nat int rev type)
- [abstract
- [monad (#+ do)]
- [functor
- ["." contravariant]]]
- [control
- ["<>" parser
- ["<c>" code (#+ Parser)]]]
- [data
- ["." bit]
- ["." name]
- ["." text]
- [format
- ["." xml]
- ["." json]]
- [collection
- ["." list ("#\." monad)]]]
- ["." time
- ["." instant]
- ["." duration]
- ["." date]
- ["." day]
- ["." month]]
- [math
- ["." modular]
- [number
- ["." nat]
- ["." int]
- ["." rev]
- ["." frac]
- ["." ratio]]]
- [macro
- [syntax (#+ syntax:)]
- ["." code]
- ["." template]]
- [meta
- ["." location]]
- ["." type]])
-
-(type: #export (Format a)
- {#.doc "A way to produce readable text from values."}
- (-> a Text))
-
-(implementation: #export functor
- (contravariant.Functor Format)
-
- (def: (map f fb)
- (|>> f fb)))
-
-(syntax: #export (format {fragments (<>.many <c>.any)})
- {#.doc (doc "Text interpolation."
- (format "Static part " (text static) " does not match URI: " uri))}
- (wrap (.list (` ($_ "lux text concat" (~+ fragments))))))
-
-(template [<name> <type> <formatter>]
- [(def: #export <name>
- (Format <type>)
- <formatter>)]
-
- [bit Bit (\ bit.codec encode)]
- [nat Nat (\ nat.decimal encode)]
- [int Int (\ int.decimal encode)]
- [rev Rev (\ rev.decimal encode)]
- [frac Frac (\ frac.decimal encode)]
- [text Text text.format]
-
- [ratio ratio.Ratio (\ ratio.codec encode)]
- [name Name (\ name.codec encode)]
- [location Location location.format]
- [code Code code.format]
- [type Type type.format]
-
- [instant instant.Instant (\ instant.codec encode)]
- [duration duration.Duration (\ duration.codec encode)]
- [date date.Date (\ date.codec encode)]
- [time time.Time (\ time.codec encode)]
- [day day.Day (\ day.codec encode)]
- [month month.Month (\ month.codec encode)]
-
- [xml xml.XML (\ xml.codec encode)]
- [json json.JSON (\ json.codec encode)]
- )
-
-(template [<type> <format>,<codec>]
- [(`` (template [<format> <codec>]
- [(def: #export <format>
- (Format <type>)
- (\ <codec> encode))]
-
- (~~ (template.splice <format>,<codec>))))]
-
- [Nat
- [[nat/2 nat.binary]
- [nat/8 nat.octal]
- [nat/10 nat.decimal]
- [nat/16 nat.hex]]]
- [Int
- [[int/2 int.binary]
- [int/8 int.octal]
- [int/10 int.decimal]
- [int/16 int.hex]]]
- [Rev
- [[rev/2 rev.binary]
- [rev/8 rev.octal]
- [rev/10 rev.decimal]
- [rev/16 rev.hex]]]
- [Frac
- [[frac/2 frac.binary]
- [frac/8 frac.octal]
- [frac/10 frac.decimal]
- [frac/16 frac.hex]]]
- )
-
-(def: #export (mod modular)
- (All [m] (Format (modular.Mod m)))
- (let [codec (modular.codec (modular.modulus modular))]
- (\ codec encode modular)))
-
-(def: #export (list formatter)
- (All [a] (-> (Format a) (Format (List a))))
- (|>> (list\map (|>> formatter (format " ")))
- (text.join_with "")
- (text.enclose ["(list" ")"])))
-
-(def: #export (maybe format)
- (All [a] (-> (Format a) (Format (Maybe a))))
- (function (_ value)
- (case value
- #.None
- "#.None"
-
- (#.Some value)
- (..format "(#.Some " (format value) ")"))))