diff options
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/library/lux/time/instant.lux | 56 |
1 files changed, 28 insertions, 28 deletions
diff --git a/stdlib/source/library/lux/time/instant.lux b/stdlib/source/library/lux/time/instant.lux index daa4b8c2e..5f11765f0 100644 --- a/stdlib/source/library/lux/time/instant.lux +++ b/stdlib/source/library/lux/time/instant.lux @@ -33,63 +33,63 @@ (primitive .public Instant Int - (def: .public of_millis + (def .public of_millis (-> Int Instant) (|>> abstraction)) - (def: .public millis + (def .public millis (-> Instant Int) (|>> representation)) - (def: .public (span from to) + (def .public (span from to) (-> Instant Instant Duration) (duration.of_millis (i.- (representation from) (representation to)))) - (def: .public (after duration instant) + (def .public (after duration instant) (-> Duration Instant Instant) (abstraction (i.+ (duration.millis duration) (representation instant)))) - (def: .public (relative instant) + (def .public (relative instant) (-> Instant Duration) (|> instant representation duration.of_millis)) - (def: .public (absolute offset) + (def .public (absolute offset) (-> Duration Instant) (|> offset duration.millis abstraction)) - (def: .public equivalence + (def .public equivalence (Equivalence Instant) (implementation - (def: (= param subject) + (def (= param subject) (at i.equivalence = (representation param) (representation subject))))) - (def: .public order + (def .public order (Order Instant) (implementation - (def: equivalence ..equivalence) - (def: (< param subject) + (def equivalence ..equivalence) + (def (< param subject) (at i.order < (representation param) (representation subject))))) - (`` (def: .public enum + (`` (def .public enum (Enum Instant) (implementation - (def: order ..order) + (def order ..order) (~~ (with_template [<name>] - [(def: <name> + [(def <name> (|>> representation (at i.enum <name>) abstraction))] [succ] [pred] ))))) ) -(def: .public epoch +(def .public epoch Instant (..of_millis +0)) -(def: millis_per_day +(def millis_per_day (duration.ticks duration.milli_second duration.day)) -(def: (date_time instant) +(def (date_time instant) (-> Instant [Date Duration]) (let [offset (..millis instant) bce? (i.< +0 offset) @@ -103,13 +103,13 @@ (duration.of_millis day_time)])) (with_template [<value> <definition>] - [(def: <definition> Text <value>)] + [(def <definition> Text <value>)] ["T" date_suffix] ["Z" time_suffix] ) -(def: (clock_time duration) +(def (clock_time duration) (-> Duration Time) (|> (if (at duration.order < duration.empty duration) (duration.composite duration.day duration) @@ -119,7 +119,7 @@ //.of_millis try.trusted)) -(def: (format instant) +(def (format instant) (-> Instant Text) (let [[date time] (..date_time instant) time (..clock_time time)] @@ -127,7 +127,7 @@ (at date.codec encoded date) ..date_suffix (at //.codec encoded time) ..time_suffix))) -(def: parser +(def parser (Parser Instant) (do [! <>.monad] [days (at ! each date.days date.parser) @@ -142,13 +142,13 @@ (duration.composite (duration.up time duration.milli_second)) ..absolute)))) -(def: .public codec +(def .public codec (Codec Text Instant) (implementation - (def: encoded ..format) - (def: decoded (<text>.result ..parser)))) + (def encoded ..format) + (def decoded (<text>.result ..parser)))) -(def: .public now +(def .public now (IO Instant) (io (..of_millis (for @.old ("jvm invokestatic:java.lang.System:currentTimeMillis:") @.jvm (|> ("jvm member invoke static" [] "java.lang.System" "currentTimeMillis" []) @@ -189,7 +189,7 @@ )))) (with_template [<field> <type> <post_processing>] - [(def: .public (<field> instant) + [(def .public (<field> instant) (-> Instant <type>) (let [[date time] (..date_time instant)] (|> <field> <post_processing>)))] @@ -198,7 +198,7 @@ [time Time ..clock_time] ) -(def: .public (day_of_week instant) +(def .public (day_of_week instant) (-> Instant Day) (let [offset (..relative instant) days (duration.ticks duration.day offset) @@ -222,7 +222,7 @@ +6 {day.#Saturday} _ (undefined)))) -(def: .public (of_date_time date time) +(def .public (of_date_time date time) (-> Date Time Instant) (|> (date.days date) (i.* (duration.millis duration.day)) |