hourglass-0.2.12: simple performant time related library
LicenseBSD-style
MaintainerVincent Hanquez <vincent@snarc.org>
Stabilityexperimental
Portabilityunknown
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Hourglass.Epoch

Description

Epoch tracking

Synopsis

computer time tracking with various epoch

newtype ElapsedSince epoch Source #

A number of seconds elapsed since an epoch.

Constructors

ElapsedSince Seconds 

Instances

Instances details
Data epoch => Data (ElapsedSince epoch) Source # 
Instance details

Defined in Data.Hourglass.Epoch

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ElapsedSince epoch -> c (ElapsedSince epoch)

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ElapsedSince epoch)

toConstr :: ElapsedSince epoch -> Constr

dataTypeOf :: ElapsedSince epoch -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ElapsedSince epoch))

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ElapsedSince epoch))

gmapT :: (forall b. Data b => b -> b) -> ElapsedSince epoch -> ElapsedSince epoch

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ElapsedSince epoch -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ElapsedSince epoch -> r

gmapQ :: (forall d. Data d => d -> u) -> ElapsedSince epoch -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> ElapsedSince epoch -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ElapsedSince epoch -> m (ElapsedSince epoch)

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ElapsedSince epoch -> m (ElapsedSince epoch)

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ElapsedSince epoch -> m (ElapsedSince epoch)

Num (ElapsedSince epoch) Source # 
Instance details

Defined in Data.Hourglass.Epoch

Methods

(+) :: ElapsedSince epoch -> ElapsedSince epoch -> ElapsedSince epoch

(-) :: ElapsedSince epoch -> ElapsedSince epoch -> ElapsedSince epoch

(*) :: ElapsedSince epoch -> ElapsedSince epoch -> ElapsedSince epoch

negate :: ElapsedSince epoch -> ElapsedSince epoch

abs :: ElapsedSince epoch -> ElapsedSince epoch

signum :: ElapsedSince epoch -> ElapsedSince epoch

fromInteger :: Integer -> ElapsedSince epoch

Read (ElapsedSince epoch) Source # 
Instance details

Defined in Data.Hourglass.Epoch

Methods

readsPrec :: Int -> ReadS (ElapsedSince epoch)

readList :: ReadS [ElapsedSince epoch]

readPrec :: ReadPrec (ElapsedSince epoch)

readListPrec :: ReadPrec [ElapsedSince epoch]

Show (ElapsedSince epoch) Source # 
Instance details

Defined in Data.Hourglass.Epoch

Methods

showsPrec :: Int -> ElapsedSince epoch -> ShowS

show :: ElapsedSince epoch -> String

showList :: [ElapsedSince epoch] -> ShowS

NFData (ElapsedSince epoch) Source # 
Instance details

Defined in Data.Hourglass.Epoch

Methods

rnf :: ElapsedSince epoch -> ()

Eq (ElapsedSince epoch) Source # 
Instance details

Defined in Data.Hourglass.Epoch

Methods

(==) :: ElapsedSince epoch -> ElapsedSince epoch -> Bool

(/=) :: ElapsedSince epoch -> ElapsedSince epoch -> Bool

Ord (ElapsedSince epoch) Source # 
Instance details

Defined in Data.Hourglass.Epoch

Methods

compare :: ElapsedSince epoch -> ElapsedSince epoch -> Ordering

(<) :: ElapsedSince epoch -> ElapsedSince epoch -> Bool

(<=) :: ElapsedSince epoch -> ElapsedSince epoch -> Bool

(>) :: ElapsedSince epoch -> ElapsedSince epoch -> Bool

(>=) :: ElapsedSince epoch -> ElapsedSince epoch -> Bool

max :: ElapsedSince epoch -> ElapsedSince epoch -> ElapsedSince epoch

min :: ElapsedSince epoch -> ElapsedSince epoch -> ElapsedSince epoch

Epoch epoch => Time (ElapsedSince epoch) Source # 
Instance details

Defined in Data.Hourglass.Epoch

Epoch epoch => Timeable (ElapsedSince epoch) Source # 
Instance details

Defined in Data.Hourglass.Epoch

data ElapsedSinceP epoch Source #

A number of seconds and nanoseconds elapsed since an epoch.

Constructors

ElapsedSinceP !(ElapsedSince epoch) !NanoSeconds 

Instances

Instances details
Data epoch => Data (ElapsedSinceP epoch) Source # 
Instance details

Defined in Data.Hourglass.Epoch

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ElapsedSinceP epoch -> c (ElapsedSinceP epoch)

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ElapsedSinceP epoch)

toConstr :: ElapsedSinceP epoch -> Constr

dataTypeOf :: ElapsedSinceP epoch -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ElapsedSinceP epoch))

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ElapsedSinceP epoch))

gmapT :: (forall b. Data b => b -> b) -> ElapsedSinceP epoch -> ElapsedSinceP epoch

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ElapsedSinceP epoch -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ElapsedSinceP epoch -> r

gmapQ :: (forall d. Data d => d -> u) -> ElapsedSinceP epoch -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> ElapsedSinceP epoch -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ElapsedSinceP epoch -> m (ElapsedSinceP epoch)

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ElapsedSinceP epoch -> m (ElapsedSinceP epoch)

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ElapsedSinceP epoch -> m (ElapsedSinceP epoch)

Num (ElapsedSinceP e) Source # 
Instance details

Defined in Data.Hourglass.Epoch

Read (ElapsedSinceP epoch) Source # 
Instance details

Defined in Data.Hourglass.Epoch

Methods

readsPrec :: Int -> ReadS (ElapsedSinceP epoch)

readList :: ReadS [ElapsedSinceP epoch]

readPrec :: ReadPrec (ElapsedSinceP epoch)

readListPrec :: ReadPrec [ElapsedSinceP epoch]

Show (ElapsedSinceP epoch) Source # 
Instance details

Defined in Data.Hourglass.Epoch

Methods

showsPrec :: Int -> ElapsedSinceP epoch -> ShowS

show :: ElapsedSinceP epoch -> String

showList :: [ElapsedSinceP epoch] -> ShowS

NFData (ElapsedSinceP e) Source # 
Instance details

Defined in Data.Hourglass.Epoch

Methods

rnf :: ElapsedSinceP e -> ()

Eq (ElapsedSinceP epoch) Source # 
Instance details

Defined in Data.Hourglass.Epoch

Methods

(==) :: ElapsedSinceP epoch -> ElapsedSinceP epoch -> Bool

(/=) :: ElapsedSinceP epoch -> ElapsedSinceP epoch -> Bool

Ord (ElapsedSinceP epoch) Source # 
Instance details

Defined in Data.Hourglass.Epoch

Methods

compare :: ElapsedSinceP epoch -> ElapsedSinceP epoch -> Ordering

(<) :: ElapsedSinceP epoch -> ElapsedSinceP epoch -> Bool

(<=) :: ElapsedSinceP epoch -> ElapsedSinceP epoch -> Bool

(>) :: ElapsedSinceP epoch -> ElapsedSinceP epoch -> Bool

(>=) :: ElapsedSinceP epoch -> ElapsedSinceP epoch -> Bool

max :: ElapsedSinceP epoch -> ElapsedSinceP epoch -> ElapsedSinceP epoch

min :: ElapsedSinceP epoch -> ElapsedSinceP epoch -> ElapsedSinceP epoch

Epoch epoch => Time (ElapsedSinceP epoch) Source # 
Instance details

Defined in Data.Hourglass.Epoch

Epoch epoch => Timeable (ElapsedSinceP epoch) Source # 
Instance details

Defined in Data.Hourglass.Epoch

Epoch

class Epoch epoch where Source #

epoch related.

We use the well known Unix epoch as the reference timezone for doing conversion between epochs.

Each methods of this typeclass should not use the actual value, but only get the information needed from the type itself.

Methods

epochName :: epoch -> String Source #

The name of this epoch

epochDiffToUnix :: epoch -> Seconds Source #

number of seconds of difference with 1st January 1970.

a negative number means that this epoch start before the unix epoch.

Instances

Instances details
Epoch UnixEpoch Source # 
Instance details

Defined in Data.Hourglass.Epoch

Epoch WindowsEpoch Source # 
Instance details

Defined in Data.Hourglass.Epoch

standard and usual epochs

data UnixEpoch Source #

Unix Epoch, starting 1st January 1970

Constructors

UnixEpoch 

Instances

Instances details
Show UnixEpoch Source # 
Instance details

Defined in Data.Hourglass.Epoch

Methods

showsPrec :: Int -> UnixEpoch -> ShowS

show :: UnixEpoch -> String

showList :: [UnixEpoch] -> ShowS

Eq UnixEpoch Source # 
Instance details

Defined in Data.Hourglass.Epoch

Methods

(==) :: UnixEpoch -> UnixEpoch -> Bool

(/=) :: UnixEpoch -> UnixEpoch -> Bool

Epoch UnixEpoch Source # 
Instance details

Defined in Data.Hourglass.Epoch

data WindowsEpoch Source #

Windows Epoch, starting 1st January 1601

Constructors

WindowsEpoch 

Instances

Instances details
Show WindowsEpoch Source # 
Instance details

Defined in Data.Hourglass.Epoch

Methods

showsPrec :: Int -> WindowsEpoch -> ShowS

show :: WindowsEpoch -> String

showList :: [WindowsEpoch] -> ShowS

Eq WindowsEpoch Source # 
Instance details

Defined in Data.Hourglass.Epoch

Methods

(==) :: WindowsEpoch -> WindowsEpoch -> Bool

(/=) :: WindowsEpoch -> WindowsEpoch -> Bool

Epoch WindowsEpoch Source # 
Instance details

Defined in Data.Hourglass.Epoch