mergeful-0.0.0.0

Safe HaskellNone
LanguageHaskell2010

Data.Mergeful.Timed

Description

Dealing with server times.

If you are importing this module, you are probably doing something wrong.

Synopsis

Documentation

data ServerTime Source #

A "time", as "measured" by the server.

This is closer to a version number than an actual timestamp, but that distinction should not matter for your usage of this library.

In any case, a client should not be changing this value.

Instances
Eq ServerTime Source # 
Instance details

Defined in Data.Mergeful.Timed

Ord ServerTime Source # 
Instance details

Defined in Data.Mergeful.Timed

Show ServerTime Source # 
Instance details

Defined in Data.Mergeful.Timed

Generic ServerTime Source # 
Instance details

Defined in Data.Mergeful.Timed

Associated Types

type Rep ServerTime :: Type -> Type #

ToJSON ServerTime Source # 
Instance details

Defined in Data.Mergeful.Timed

FromJSON ServerTime Source # 
Instance details

Defined in Data.Mergeful.Timed

Validity ServerTime Source # 
Instance details

Defined in Data.Mergeful.Timed

type Rep ServerTime Source # 
Instance details

Defined in Data.Mergeful.Timed

type Rep ServerTime = D1 (MetaData "ServerTime" "Data.Mergeful.Timed" "mergeful-0.0.0.0-LTwAvhb2uEKNxaCunTl9g" True) (C1 (MetaCons "ServerTime" PrefixI True) (S1 (MetaSel (Just "unServerTime") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Word64)))

initialServerTime :: ServerTime Source #

A server time to start with.

incrementServerTime :: ServerTime -> ServerTime Source #

Increment a server time, this will only start repeating after at least 2^64 - 1 values, so you're probably fine.

data Timed a Source #

A value along with a server time.

Constructors

Timed 

Fields

Instances
Eq a => Eq (Timed a) Source # 
Instance details

Defined in Data.Mergeful.Timed

Methods

(==) :: Timed a -> Timed a -> Bool #

(/=) :: Timed a -> Timed a -> Bool #

Show a => Show (Timed a) Source # 
Instance details

Defined in Data.Mergeful.Timed

Methods

showsPrec :: Int -> Timed a -> ShowS #

show :: Timed a -> String #

showList :: [Timed a] -> ShowS #

Generic (Timed a) Source # 
Instance details

Defined in Data.Mergeful.Timed

Associated Types

type Rep (Timed a) :: Type -> Type #

Methods

from :: Timed a -> Rep (Timed a) x #

to :: Rep (Timed a) x -> Timed a #

ToJSON a => ToJSON (Timed a) Source # 
Instance details

Defined in Data.Mergeful.Timed

FromJSON a => FromJSON (Timed a) Source # 
Instance details

Defined in Data.Mergeful.Timed

Validity a => Validity (Timed a) Source # 
Instance details

Defined in Data.Mergeful.Timed

Methods

validate :: Timed a -> Validation #

type Rep (Timed a) Source # 
Instance details

Defined in Data.Mergeful.Timed

type Rep (Timed a) = D1 (MetaData "Timed" "Data.Mergeful.Timed" "mergeful-0.0.0.0-LTwAvhb2uEKNxaCunTl9g" False) (C1 (MetaCons "Timed" PrefixI True) (S1 (MetaSel (Just "timedValue") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 a) :*: S1 (MetaSel (Just "timedTime") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 ServerTime)))