packages feed

chronos 1.0.8 → 1.0.9

raw patch · 3 files changed

+60/−26 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Chronos: TimeParts :: !Int -> !Int -> !Int -> !Int -> !Int -> !Int -> !Int -> !Int -> TimeParts
+ Chronos: [timePartsDay] :: TimeParts -> !Int
+ Chronos: [timePartsHour] :: TimeParts -> !Int
+ Chronos: [timePartsMinute] :: TimeParts -> !Int
+ Chronos: [timePartsMonth] :: TimeParts -> !Int
+ Chronos: [timePartsOffset] :: TimeParts -> !Int
+ Chronos: [timePartsSecond] :: TimeParts -> !Int
+ Chronos: [timePartsSubsecond] :: TimeParts -> !Int
+ Chronos: [timePartsYear] :: TimeParts -> !Int
+ Chronos: data TimeParts
+ Chronos: instance GHC.Classes.Eq Chronos.TimeParts
+ Chronos: instance GHC.Read.Read Chronos.TimeParts
+ Chronos: instance GHC.Show.Show Chronos.TimeParts
+ Chronos: timeParts :: Offset -> Time -> TimeParts
+ Chronos.Types: TimeParts :: !Int -> !Int -> !Int -> !Int -> !Int -> !Int -> !Int -> !Int -> TimeParts
+ Chronos.Types: [timePartsDay] :: TimeParts -> !Int
+ Chronos.Types: [timePartsHour] :: TimeParts -> !Int
+ Chronos.Types: [timePartsMinute] :: TimeParts -> !Int
+ Chronos.Types: [timePartsMonth] :: TimeParts -> !Int
+ Chronos.Types: [timePartsOffset] :: TimeParts -> !Int
+ Chronos.Types: [timePartsSecond] :: TimeParts -> !Int
+ Chronos.Types: [timePartsSubsecond] :: TimeParts -> !Int
+ Chronos.Types: [timePartsYear] :: TimeParts -> !Int
+ Chronos.Types: data TimeParts

Files

chronos.cabal view
@@ -2,7 +2,7 @@ name:   chronos version:-  1.0.8+  1.0.9 synopsis:   A performant time library description:
src/Chronos.hs view
@@ -1,16 +1,14 @@ {-# language-        BangPatterns-      , CPP-      , DeriveGeneric-      , GeneralizedNewtypeDeriving-      , MagicHash-      , MultiParamTypeClasses-      , OverloadedStrings-      , RecordWildCards-      , ScopedTypeVariables-      , TypeFamilies-      , TypeInType-      , UnboxedTuples+    BangPatterns+  , CPP+  , DeriveGeneric+  , GeneralizedNewtypeDeriving+  , MultiParamTypeClasses+  , OverloadedStrings+  , ScopedTypeVariables+  , TypeFamilies+  , TypeInType+  , UnboxedTuples   #-}  {-| Chronos is a performance-oriented time library for Haskell, with a@@ -85,6 +83,7 @@   , slash   , hyphen   , compact+  , timeParts     -- ** Months   , january   , february@@ -237,26 +236,26 @@   , DatetimeLocale(..)   , MeridiemLocale(..)   , TimeInterval(..)+  , TimeParts(..)   ) where -import Data.Text (Text)-import Data.Vector (Vector)-import Data.Attoparsec.Text (Parser)+import Control.Applicative+import Control.Exception (evaluate) import Control.Monad+import Data.Aeson (FromJSON,ToJSON,FromJSONKey,ToJSONKey)+import Data.Attoparsec.Text (Parser)+import Data.ByteString (ByteString)+import Data.Char (isDigit) import Data.Foldable-import Control.Applicative+import Data.Hashable (Hashable) import Data.Int (Int64)-import Data.Char (isDigit)-import Data.ByteString (ByteString)-import Torsor (add,difference,scale,plus)-import Data.Word (Word64, Word8)-import Torsor-import GHC.Generics (Generic)-import Data.Aeson (FromJSON,ToJSON,FromJSONKey,ToJSONKey) import Data.Primitive+import Data.Text (Text)+import Data.Vector (Vector)+import Data.Word (Word64, Word8) import Foreign.Storable-import Data.Hashable (Hashable)-import Control.Exception (evaluate)+import GHC.Generics (Generic)+import Torsor import qualified Data.Aeson as AE import qualified Data.Aeson.Encoding as AEE import qualified Data.Aeson.Types as AET@@ -2660,3 +2659,37 @@ aesonParserOffset t = case decodeOffset OffsetFormatColonOn t of   Nothing -> fail "could not parse Offset"   Just x -> pure x++-- | Holds all of the parts encoded by a 'Time'.+--   Can be used for formatting if what is presently in the API+--   does not suffice.+data TimeParts = TimeParts+  { timePartsDay :: !Int -- ^ days 0-31+  , timePartsMonth :: !Int -- ^ months 0-11+  , timePartsYear :: !Int+  , timePartsHour :: !Int -- ^ hours 0-23+  , timePartsMinute :: !Int -- ^ minutes 0-59+  , timePartsSecond :: !Int -- ^ seconds 0-59+  , timePartsSubsecond :: !Int -- ^ fraction of a second with nanosecond resolution+  , timePartsOffset :: !Int+  }+  deriving (Eq, Read, Show)++-- | Deconstruct a 'Time' into its 'TimeParts'.+timeParts :: Offset -> Time -> TimeParts+timeParts o0 t0 =+  let+    OffsetDatetime (Datetime dt t) o = timeToOffsetDatetime o0 t0+    Date y mo d = dt+    TimeOfDay h mi s = t+    (wholeSeconds, subsecond) = divMod s 100000000+  in TimeParts+    { timePartsDay = fromIntegral (getDayOfMonth d)+    , timePartsMonth = fromIntegral (getMonth mo)+    , timePartsYear = fromIntegral (getYear y)+    , timePartsHour = h+    , timePartsMinute = mi+    , timePartsSecond = fromIntegral wholeSeconds+    , timePartsSubsecond = fromIntegral subsecond+    , timePartsOffset = getOffset o+    }
src/Chronos/Types.hs view
@@ -52,6 +52,7 @@   , DatetimeLocale(..)   , MeridiemLocale(..)   , TimeInterval(..)+  , TimeParts(..)   ) where  import Chronos