packages feed

validity-time (empty) → 0.0.0.0

raw patch · 8 files changed

+177/−0 lines, 8 filesdep +basedep +timedep +validitysetup-changed

Dependencies added: base, time, validity

Files

+ LICENSE view
@@ -0,0 +1,21 @@+The MIT License (MIT)++Copyright (c) 2017 Tom Sydney Kerckhove++Permission is hereby granted, free of charge, to any person obtaining a copy+of this software and associated documentation files (the "Software"), to deal+in the Software without restriction, including without limitation the rights+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+copies of the Software, and to permit persons to whom the Software is+furnished to do so, subject to the following conditions:++The above copyright notice and this permission notice shall be included in all+copies or substantial portions of the Software.++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+SOFTWARE.
+ Setup.hs view
@@ -0,0 +1,3 @@+import Distribution.Simple++main = defaultMain
+ src/Data/Validity/Time.hs view
@@ -0,0 +1,11 @@+{-# OPTIONS_GHC -Wno-orphans #-}+{-# OPTIONS_GHC -Wno-dodgy-exports #-}++module Data.Validity.Time+    ( module X+    ) where++import qualified Data.Validity.Time.Calendar as X ()+import qualified Data.Validity.Time.Clock as X ()+import qualified Data.Validity.Time.Format as X ()+import qualified Data.Validity.Time.LocalTime as X ()
+ src/Data/Validity/Time/Calendar.hs view
@@ -0,0 +1,11 @@+{-# OPTIONS_GHC -Wno-orphans #-}++module Data.Validity.Time.Calendar where++import Data.Validity++import Data.Time.Calendar++-- | Valid according to the 'Integer' it contains.+instance Validity Day where+    isValid (ModifiedJulianDay i) = isValid i
+ src/Data/Validity/Time/Clock.hs view
@@ -0,0 +1,30 @@+{-# OPTIONS_GHC -Wno-orphans #-}+{-# LANGUAGE RecordWildCards #-}++module Data.Validity.Time.Clock where++import Data.Validity++import Data.Time.Clock+import Data.Validity.Time.Calendar ()++-- | Valid according to the 'Rational' it contains.+instance Validity UniversalTime where+    isValid (ModJulianDate i) = isValid i++-- | Valid according to the validity of the result of 'diffTimeToPicoseconds'+instance Validity DiffTime where+    isValid = isValid . diffTimeToPicoseconds++instance Validity UTCTime where+    isValid UTCTime {..} =+        and+            [ isValid utctDay+            , isValid utctDayTime+            , diffTimeToPicoseconds utctDayTime >= 0+            , diffTimeToPicoseconds utctDayTime < 86401 * 10 ^ (12 :: Integer)+            ]++instance Validity NominalDiffTime where+    isValid = isValid . (round :: NominalDiffTime -> Integer)+    -- NominalDiffTime contains a 'Pico' but that constructorr is not exported so we can't do any better than this.
+ src/Data/Validity/Time/Format.hs view
@@ -0,0 +1,24 @@+{-# OPTIONS_GHC -Wno-orphans #-}+{-# LANGUAGE RecordWildCards #-}++module Data.Validity.Time.Format where++import Data.Validity++import Data.Time.Format++import Data.Validity.Time.LocalTime ()++-- | Valid according to the contained values+instance Validity TimeLocale where+    isValid TimeLocale {..} =+        and+            [ isValid wDays+            , isValid months+            , isValid amPm+            , isValid dateTimeFmt+            , isValid dateFmt+            , isValid timeFmt+            , isValid time12Fmt+            , isValid knownTimeZones+            ]
+ src/Data/Validity/Time/LocalTime.hs view
@@ -0,0 +1,44 @@+{-# OPTIONS_GHC -Wno-orphans #-}+{-# LANGUAGE RecordWildCards #-}++module Data.Validity.Time.LocalTime where++import Data.Validity++import Data.Time.LocalTime++import Data.Validity.Time.Calendar ()++-- | Valid according to the contained values.+instance Validity TimeZone where+    isValid TimeZone {..} =+        isValid timeZoneMinutes &&+        isValid timeZoneSummerOnly && isValid timeZoneName++-- | Valid according to the validity of contained values and these constraints:+--+--  * todHour : range 0 - 23+--  * todMin : range 0 - 59+--  * todSec : 0 <= todSec < 61,+instance Validity TimeOfDay where+    isValid TimeOfDay {..} =+        and+            [ isValid todHour+            , todHour >= 0+            , todHour <= 23+            , isValid todMin+            , todMin >= 0+            , todMin <= 59+            , isValid todSec+            , todSec >= 0+            , todSec < 61+            ]++-- | Valid according to the validity of contained values+instance Validity LocalTime where+    isValid LocalTime {..} = isValid localDay && isValid localTimeOfDay++-- | Valid according to the validity of contained values+instance Validity ZonedTime where+    isValid ZonedTime {..} =+        isValid zonedTimeToLocalTime && isValid zonedTimeZone
+ validity-time.cabal view
@@ -0,0 +1,33 @@+name: validity-time+version: 0.0.0.0+cabal-version: >=1.10+build-type: Simple+license: MIT+license-file: LICENSE+copyright: Copyright: (c) 2017 Tom Sydney Kerckhove+maintainer: syd.kerckhove@gmail.com+homepage: https://github.com/NorfairKing/validity#readme+synopsis: Validity instances for time+description:+    Please see README.md+category: Validity+author: Tom Sydney Kerckhove++source-repository head+    type: git+    location: https://github.com/NorfairKing/validity++library+    exposed-modules:+        Data.Validity.Time+        Data.Validity.Time.Calendar+        Data.Validity.Time.Clock+        Data.Validity.Time.Format+        Data.Validity.Time.LocalTime+    build-depends:+        base <5,+        validity -any,+        time -any+    default-language: Haskell2010+    hs-source-dirs: src+