diff options
Diffstat (limited to 'stdlib/source/lux/data/text/format.lux')
-rw-r--r-- | stdlib/source/lux/data/text/format.lux | 25 |
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) ")")))) |