validity-time 0.1.0.0 → 0.2.0.0
raw patch · 5 files changed
+73/−100 lines, 5 filesdep ~validity
Dependency ranges changed: validity
Files
- src/Data/Validity/Time/Calendar.hs +1/−2
- src/Data/Validity/Time/Clock.hs +9/−17
- src/Data/Validity/Time/Format.hs +8/−19
- src/Data/Validity/Time/LocalTime.hs +18/−33
- validity-time.cabal +37/−29
src/Data/Validity/Time/Calendar.hs view
@@ -8,5 +8,4 @@ -- | Valid according to the 'Integer' it contains. instance Validity Day where- isValid (ModifiedJulianDay i) = isValid i- validate = validateByCheckingName "Day"+ validate = delve "toModifiedJulianDay" . toModifiedJulianDay
src/Data/Validity/Time/Clock.hs view
@@ -10,32 +10,24 @@ -- | Valid according to the 'Rational' it contains. instance Validity UniversalTime where- isValid (ModJulianDate i) = isValid i- validate = validateByCheckingName "UniversalTime"+ validate = delve "toModifiedJulianDay" . getModJulianDate -- | Trivially valid instance Validity DiffTime where- isValid = triviallyValid- validate = validateByCheckingName "DiffTime"+ validate = trivialValidation instance Validity UTCTime where- isValid UTCTime {..} =- and- [ isValid utctDay- , isValid utctDayTime- , utctDayTime >= 0- , utctDayTime < 86401- ] validate UTCTime {..} = mconcat- [ utctDay <?!> "utctDay"- , utctDayTime <?!> "utctDayTime"- , utctDayTime >= 0 <?@> "The day time is positive."- , utctDayTime < 86401 <?@> "The day time is strictly less than 86401."+ [ annotate utctDay "utctDay"+ , annotate utctDayTime "utctDayTime"+ , check (utctDayTime >= 0) "The day time is positive."+ , check+ (utctDayTime < 86401)+ "The day time is strictly less than 86401." ] instance Validity NominalDiffTime -- NominalDiffTime contains a 'Pico' but that constructorr is not exported so we can't do any better than this. where- isValid = isValid . (round :: NominalDiffTime -> Integer)- validate = validateByCheckingName "NominalDiffTime"+ validate ndt = annotate ((round :: NominalDiffTime -> Integer) ndt) "round"
src/Data/Validity/Time/Format.hs view
@@ -13,26 +13,15 @@ #if MIN_VERSION_time(1,5,0) -- | 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- ] validate TimeLocale {..} = mconcat- [ wDays <?!> "wDays"- , months <?!> "months"- , amPm <?!> "amPm"- , dateTimeFmt <?!> "dateTimeFmt"- , dateFmt <?!> "dateFmt"- , timeFmt <?!> "timeFmt"- , time12Fmt <?!> "time12Fmt"- , knownTimeZones <?!> "knownTimeZones"+ [ annotate wDays $ "wDays"+ , annotate months $ "months"+ , annotate amPm $ "amPm"+ , annotate dateTimeFmt $ "dateTimeFmt"+ , annotate dateFmt $ "dateFmt"+ , annotate timeFmt $ "timeFmt"+ , annotate time12Fmt $ "time12Fmt"+ , annotate knownTimeZones $ "knownTimeZones" ] #endif
src/Data/Validity/Time/LocalTime.hs view
@@ -11,14 +11,11 @@ -- | Valid according to the contained values. instance Validity TimeZone where- isValid TimeZone {..} =- isValid timeZoneMinutes &&- isValid timeZoneSummerOnly && isValid timeZoneName validate TimeZone {..} = mconcat- [ timeZoneMinutes <?!> "timeZoneMinutes"- , timeZoneSummerOnly <?!> "timeZoneSummerOnly"- , timeZoneName <?!> "timeZoneName"+ [ annotate timeZoneMinutes "timeZoneMinutes"+ , annotate timeZoneSummerOnly "timeZoneSummerOnly"+ , annotate timeZoneName "timeZoneName" ] -- | Valid according to the validity of contained values and these constraints:@@ -27,43 +24,31 @@ -- * 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- ] validate TimeOfDay {..} = mconcat- [ todHour <?!> "todHour"- , todHour >= 0 <?@> "The 'hour' is positive."- , todHour <= 23 <?@> "The 'hour' is 23 or less."- , todMin <?!> "todMin"- , todMin >= 0 <?@> "The 'minute' is positive."- , todMin <= 59 <?@> "The 'minute' is 59 or less."- , todSec <?!> "todSec"- , todSec >= 0 <?@> "The 'second' is positive."- , todSec < 61 <?@> "The 'second' is 60 or less."+ [ annotate todHour "todHour"+ , check (todHour >= 0) "The 'hour' is positive."+ , check (todHour <= 23) "The 'hour' is 23 or less."+ , annotate todMin "todMin"+ , check (todMin >= 0) "The 'minute' is positive."+ , check (todMin <= 59) "The 'minute' is 59 or less."+ , annotate todSec "todSec"+ , check (todSec >= 0) "The 'second' is positive."+ , check (todSec < 61) "The 'second' is 60 or less." ] -- | Valid according to the validity of contained values instance Validity LocalTime where- isValid LocalTime {..} = isValid localDay && isValid localTimeOfDay validate LocalTime {..} =- mconcat [localDay <?!> "localDay", localTimeOfDay <?!> "localTimeOfDay"]+ mconcat+ [ annotate localDay "localDay"+ , annotate localTimeOfDay "localTimeOfDay"+ ] -- | Valid according to the validity of contained values instance Validity ZonedTime where- isValid ZonedTime {..} =- isValid zonedTimeToLocalTime && isValid zonedTimeZone validate ZonedTime {..} = mconcat- [ zonedTimeToLocalTime <?!> "zonedTimeToLocalTime"- , zonedTimeZone <?!> "zonedTimeZone"+ [ annotate zonedTimeToLocalTime "zonedTimeToLocalTime"+ , annotate zonedTimeZone "zonedTimeZone" ]
validity-time.cabal view
@@ -1,33 +1,41 @@-name: validity-time-version: 0.1.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+-- This file has been generated from package.yaml by hpack version 0.20.0.+--+-- see: https://github.com/sol/hpack+--+-- hash: 30cee3611d040b2784cf1196ad3d9a0e5181ae26feac32371baee9c241975e8e +name: validity-time+version: 0.2.0.0+synopsis: Validity instances for time+description: Please see README.md+category: Validity+homepage: https://github.com/NorfairKing/validity#readme+bug-reports: https://github.com/NorfairKing/validity/issues+author: Tom Sydney Kerckhove+maintainer: syd.kerckhove@gmail.com+copyright: Copyright: (c) 2017-2018 Tom Sydney Kerckhove+license: MIT+license-file: LICENSE+build-type: Simple+cabal-version: >= 1.10+ source-repository head- type: git- location: https://github.com/NorfairKing/validity+ 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 >=4.7 && <5,- validity >=0.4 && <0.5,- time -any- default-language: Haskell2010- hs-source-dirs: src-+ hs-source-dirs:+ src+ build-depends:+ base >=4.7 && <5+ , time+ , validity >=0.5 && <0.6+ exposed-modules:+ Data.Validity.Time+ Data.Validity.Time.Calendar+ Data.Validity.Time.Clock+ Data.Validity.Time.Format+ Data.Validity.Time.LocalTime+ other-modules:+ Paths_validity_time+ default-language: Haskell2010