@@ -73,6 +73,10 @@ data TimeZone = TimeZone
73
73
-- ^ The name of the zone, typically a three- or four-letter acronym.
74
74
} deriving (INSTANCES_USUAL )
75
75
76
+ LENS (TimeZone ,timeZoneMinutes,Minutes )
77
+ LENS (TimeZone ,timeZoneSummerOnly,Bool )
78
+ LENS (TimeZone ,timeZoneName,String )
79
+
76
80
instance Hashable TimeZone
77
81
instance NFData TimeZone
78
82
@@ -182,6 +186,10 @@ data TimeOfDay = TimeOfDay
182
186
, todSec :: {-# UNPACK #-}! DiffTime -- ^ Second.
183
187
} deriving (INSTANCES_USUAL )
184
188
189
+ LENS (TimeOfDay ,todHour,Hour )
190
+ LENS (TimeOfDay ,todMin,Minute )
191
+ LENS (TimeOfDay ,todSec,DiffTime )
192
+
185
193
derivingUnbox " TimeOfDay" [t | TimeOfDay -> Int64 |]
186
194
[| \ TimeOfDay {.. } -> fromIntegral (todHour .|. shiftL todMin 8 )
187
195
.|. shiftL (todSec ^. microseconds) 16 | ]
@@ -347,6 +355,9 @@ data LocalTime = LocalTime
347
355
-- ^ Local time-of-day.
348
356
} deriving (INSTANCES_USUAL )
349
357
358
+ LENS (LocalTime ,localDay,Day )
359
+ LENS (LocalTime ,localTimeOfDay,TimeOfDay )
360
+
350
361
derivingUnbox " LocalTime" [t | LocalTime -> (Day, TimeOfDay) |]
351
362
[| \ LocalTime {.. } -> (localDay, localTimeOfDay) | ]
352
363
[| \ (localDay, localTimeOfDay) -> LocalTime {.. } | ]
@@ -452,6 +463,9 @@ data ZonedTime = ZonedTime
452
463
, zonedTimeZone :: ! TimeZone
453
464
} deriving (INSTANCES_USUAL )
454
465
466
+ LENS (ZonedTime ,zonedTimeToLocalTime,LocalTime )
467
+ LENS (ZonedTime ,zonedTimeZone,TimeZone )
468
+
455
469
instance Hashable ZonedTime
456
470
instance NFData ZonedTime where
457
471
rnf ZonedTime {.. } = rnf zonedTimeZone
@@ -655,19 +669,3 @@ utcToZonedTime z t = view zonedTime (z, t)
655
669
zonedTimeToUTC :: ZonedTime -> UTCTime
656
670
zonedTimeToUTC = snd . review zonedTime
657
671
658
- -- * Lenses
659
-
660
- LENS (TimeZone ,timeZoneMinutes,Minutes )
661
- LENS (TimeZone ,timeZoneSummerOnly,Bool )
662
- LENS (TimeZone ,timeZoneName,String )
663
-
664
- LENS (TimeOfDay ,todHour,Hour )
665
- LENS (TimeOfDay ,todMin,Minute )
666
- LENS (TimeOfDay ,todSec,DiffTime )
667
-
668
- LENS (LocalTime ,localDay,Day )
669
- LENS (LocalTime ,localTimeOfDay,TimeOfDay )
670
-
671
- LENS (ZonedTime ,zonedTimeToLocalTime,LocalTime )
672
- LENS (ZonedTime ,zonedTimeZone,TimeZone )
673
-
0 commit comments