nanotime-0.3.2: a tiny time library
Safe HaskellSafe-Inferred
LanguageGHC2021

Nanotime

Synopsis

Documentation

data Sign Source #

Sign (negative or positive) of a magnitude of time difference

Constructors

SignNeg 
SignPos 

Instances

Instances details
Bounded Sign Source # 
Instance details

Defined in Nanotime

Enum Sign Source # 
Instance details

Defined in Nanotime

Methods

succ :: Sign -> Sign #

pred :: Sign -> Sign #

toEnum :: Int -> Sign #

fromEnum :: Sign -> Int #

enumFrom :: Sign -> [Sign] #

enumFromThen :: Sign -> Sign -> [Sign] #

enumFromTo :: Sign -> Sign -> [Sign] #

enumFromThenTo :: Sign -> Sign -> Sign -> [Sign] #

Show Sign Source # 
Instance details

Defined in Nanotime

Methods

showsPrec :: Int -> Sign -> ShowS #

show :: Sign -> String #

showList :: [Sign] -> ShowS #

Eq Sign Source # 
Instance details

Defined in Nanotime

Methods

(==) :: Sign -> Sign -> Bool #

(/=) :: Sign -> Sign -> Bool #

Ord Sign Source # 
Instance details

Defined in Nanotime

Methods

compare :: Sign -> Sign -> Ordering #

(<) :: Sign -> Sign -> Bool #

(<=) :: Sign -> Sign -> Bool #

(>) :: Sign -> Sign -> Bool #

(>=) :: Sign -> Sign -> Bool #

max :: Sign -> Sign -> Sign #

min :: Sign -> Sign -> Sign #

data TimeDelta Source #

Signed time difference in nanoseconds since last event Like a Nano (`Fixed E9`) but using a machine word with explicit sign.

Constructors

TimeDelta 

Fields

Instances

Instances details
Monoid TimeDelta Source # 
Instance details

Defined in Nanotime

Semigroup TimeDelta Source # 
Instance details

Defined in Nanotime

Bounded TimeDelta Source # 
Instance details

Defined in Nanotime

Num TimeDelta Source # 
Instance details

Defined in Nanotime

Show TimeDelta Source # 
Instance details

Defined in Nanotime

Eq TimeDelta Source # 
Instance details

Defined in Nanotime

Ord TimeDelta Source # 
Instance details

Defined in Nanotime

timeDeltaFromFracSecs :: Real a => a -> TimeDelta Source #

Return a TimeDelta corresponding the the given number of fractional seconds. (For example, 1.5 represents one and a half seconds.)

timeDeltaFromNanos :: Integral a => a -> TimeDelta Source #

Return a TimeDelta corresponding the the given number of nanoseconds. (For example, 1000000000 represends one second.)

showTimeDelta :: Int -> TimeDelta -> String Source #

Show a TimeDelta as a fractional second with the given number of decimal places for debugging

class Ord t => TimeLike t where Source #

MonoTime, PosixTime, and NtpTime act similarly

Methods

diffTime :: t -> t -> TimeDelta Source #

`diffTime end start` computes `end - start`

addTime :: t -> TimeDelta -> t Source #

`addTime start (diffTime end start) == end`

currentTime :: IO t Source #

Get the current time in the desired type

showPosixTime :: PosixTime -> String Source #

Show PosixTime as a UTC ISO-8601 String for debugging

newtype MonoTime Source #

Monotonic time in nanoseconds since some unspecified epoch (see getMonotonicTimeNs)

Constructors

MonoTime 

Fields

Instances

Instances details
Bounded MonoTime Source # 
Instance details

Defined in Nanotime

Num MonoTime Source # 
Instance details

Defined in Nanotime

Show MonoTime Source # 
Instance details

Defined in Nanotime

Eq MonoTime Source # 
Instance details

Defined in Nanotime

Ord MonoTime Source # 
Instance details

Defined in Nanotime

TimeLike MonoTime Source # 
Instance details

Defined in Nanotime

newtype NtpTime Source #

Constructors

NtpTime 

Fields

Instances

Instances details
Bounded NtpTime Source # 
Instance details

Defined in Nanotime

Num NtpTime Source # 
Instance details

Defined in Nanotime

Show NtpTime Source # 
Instance details

Defined in Nanotime

Eq NtpTime Source # 
Instance details

Defined in Nanotime

Methods

(==) :: NtpTime -> NtpTime -> Bool #

(/=) :: NtpTime -> NtpTime -> Bool #

Ord NtpTime Source # 
Instance details

Defined in Nanotime

TimeLike NtpTime Source # 
Instance details

Defined in Nanotime