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.lux25
1 files changed, 19 insertions, 6 deletions
diff --git a/stdlib/source/lux/data/text/format.lux b/stdlib/source/lux/data/text/format.lux
index c67ce2030..398b58aa0 100644
--- a/stdlib/source/lux/data/text/format.lux
+++ b/stdlib/source/lux/data/text/format.lux
@@ -19,7 +19,9 @@
["." time
["." instant]
["." duration]
- ["." date]]
+ ["." date]
+ ["." day]
+ ["." month]]
[math
["." modular]
[number
@@ -61,22 +63,23 @@
[int Int (\ int.decimal encode)]
[rev Rev (\ rev.decimal encode)]
[frac Frac (\ frac.decimal encode)]
- [ratio ratio.Ratio (\ ratio.codec 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]
- [xml xml.XML (\ xml.codec encode)]
- [json json.JSON (\ json.codec encode)]
-
[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>]
@@ -119,3 +122,13 @@
(|>> (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) ")"))))