module Freckle.App.Memcached.CacheTTL ( CacheTTL , cacheTTL , fromCacheTTL ) where import Freckle.App.Prelude import Data.Word (Word32) import Database.Memcache.Types (Expiration) newtype CacheTTL = CacheTTL Int deriving stock Int -> CacheTTL -> ShowS [CacheTTL] -> ShowS CacheTTL -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [CacheTTL] -> ShowS $cshowList :: [CacheTTL] -> ShowS show :: CacheTTL -> String $cshow :: CacheTTL -> String showsPrec :: Int -> CacheTTL -> ShowS $cshowsPrec :: Int -> CacheTTL -> ShowS Show deriving newtype (CacheTTL -> CacheTTL -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: CacheTTL -> CacheTTL -> Bool $c/= :: CacheTTL -> CacheTTL -> Bool == :: CacheTTL -> CacheTTL -> Bool $c== :: CacheTTL -> CacheTTL -> Bool Eq, Eq CacheTTL CacheTTL -> CacheTTL -> Bool CacheTTL -> CacheTTL -> Ordering CacheTTL -> CacheTTL -> CacheTTL forall a. Eq a -> (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a min :: CacheTTL -> CacheTTL -> CacheTTL $cmin :: CacheTTL -> CacheTTL -> CacheTTL max :: CacheTTL -> CacheTTL -> CacheTTL $cmax :: CacheTTL -> CacheTTL -> CacheTTL >= :: CacheTTL -> CacheTTL -> Bool $c>= :: CacheTTL -> CacheTTL -> Bool > :: CacheTTL -> CacheTTL -> Bool $c> :: CacheTTL -> CacheTTL -> Bool <= :: CacheTTL -> CacheTTL -> Bool $c<= :: CacheTTL -> CacheTTL -> Bool < :: CacheTTL -> CacheTTL -> Bool $c< :: CacheTTL -> CacheTTL -> Bool compare :: CacheTTL -> CacheTTL -> Ordering $ccompare :: CacheTTL -> CacheTTL -> Ordering Ord, Int -> CacheTTL CacheTTL -> Int CacheTTL -> [CacheTTL] CacheTTL -> CacheTTL CacheTTL -> CacheTTL -> [CacheTTL] CacheTTL -> CacheTTL -> CacheTTL -> [CacheTTL] forall a. (a -> a) -> (a -> a) -> (Int -> a) -> (a -> Int) -> (a -> [a]) -> (a -> a -> [a]) -> (a -> a -> [a]) -> (a -> a -> a -> [a]) -> Enum a enumFromThenTo :: CacheTTL -> CacheTTL -> CacheTTL -> [CacheTTL] $cenumFromThenTo :: CacheTTL -> CacheTTL -> CacheTTL -> [CacheTTL] enumFromTo :: CacheTTL -> CacheTTL -> [CacheTTL] $cenumFromTo :: CacheTTL -> CacheTTL -> [CacheTTL] enumFromThen :: CacheTTL -> CacheTTL -> [CacheTTL] $cenumFromThen :: CacheTTL -> CacheTTL -> [CacheTTL] enumFrom :: CacheTTL -> [CacheTTL] $cenumFrom :: CacheTTL -> [CacheTTL] fromEnum :: CacheTTL -> Int $cfromEnum :: CacheTTL -> Int toEnum :: Int -> CacheTTL $ctoEnum :: Int -> CacheTTL pred :: CacheTTL -> CacheTTL $cpred :: CacheTTL -> CacheTTL succ :: CacheTTL -> CacheTTL $csucc :: CacheTTL -> CacheTTL Enum, Integer -> CacheTTL CacheTTL -> CacheTTL CacheTTL -> CacheTTL -> CacheTTL forall a. (a -> a -> a) -> (a -> a -> a) -> (a -> a -> a) -> (a -> a) -> (a -> a) -> (a -> a) -> (Integer -> a) -> Num a fromInteger :: Integer -> CacheTTL $cfromInteger :: Integer -> CacheTTL signum :: CacheTTL -> CacheTTL $csignum :: CacheTTL -> CacheTTL abs :: CacheTTL -> CacheTTL $cabs :: CacheTTL -> CacheTTL negate :: CacheTTL -> CacheTTL $cnegate :: CacheTTL -> CacheTTL * :: CacheTTL -> CacheTTL -> CacheTTL $c* :: CacheTTL -> CacheTTL -> CacheTTL - :: CacheTTL -> CacheTTL -> CacheTTL $c- :: CacheTTL -> CacheTTL -> CacheTTL + :: CacheTTL -> CacheTTL -> CacheTTL $c+ :: CacheTTL -> CacheTTL -> CacheTTL Num, Num CacheTTL Ord CacheTTL CacheTTL -> Rational forall a. Num a -> Ord a -> (a -> Rational) -> Real a toRational :: CacheTTL -> Rational $ctoRational :: CacheTTL -> Rational Real, Enum CacheTTL Real CacheTTL CacheTTL -> Integer CacheTTL -> CacheTTL -> (CacheTTL, CacheTTL) CacheTTL -> CacheTTL -> CacheTTL forall a. Real a -> Enum a -> (a -> a -> a) -> (a -> a -> a) -> (a -> a -> a) -> (a -> a -> a) -> (a -> a -> (a, a)) -> (a -> a -> (a, a)) -> (a -> Integer) -> Integral a toInteger :: CacheTTL -> Integer $ctoInteger :: CacheTTL -> Integer divMod :: CacheTTL -> CacheTTL -> (CacheTTL, CacheTTL) $cdivMod :: CacheTTL -> CacheTTL -> (CacheTTL, CacheTTL) quotRem :: CacheTTL -> CacheTTL -> (CacheTTL, CacheTTL) $cquotRem :: CacheTTL -> CacheTTL -> (CacheTTL, CacheTTL) mod :: CacheTTL -> CacheTTL -> CacheTTL $cmod :: CacheTTL -> CacheTTL -> CacheTTL div :: CacheTTL -> CacheTTL -> CacheTTL $cdiv :: CacheTTL -> CacheTTL -> CacheTTL rem :: CacheTTL -> CacheTTL -> CacheTTL $crem :: CacheTTL -> CacheTTL -> CacheTTL quot :: CacheTTL -> CacheTTL -> CacheTTL $cquot :: CacheTTL -> CacheTTL -> CacheTTL Integral) cacheTTL :: Int -> CacheTTL cacheTTL :: Int -> CacheTTL cacheTTL = Int -> CacheTTL CacheTTL fromCacheTTL :: CacheTTL -> Expiration fromCacheTTL :: CacheTTL -> Word32 fromCacheTTL (CacheTTL Int i) | Int i forall a. Ord a => a -> a -> Bool < forall a b. (Integral a, Num b) => a -> b fromIntegral Word32 minWord = Word32 minWord | Int i forall a. Ord a => a -> a -> Bool > forall a b. (Integral a, Num b) => a -> b fromIntegral Word32 maxWord = Word32 maxWord | Bool otherwise = forall a b. (Integral a, Num b) => a -> b fromIntegral Int i where minWord :: Word32 minWord :: Word32 minWord = forall a. Bounded a => a minBound maxWord :: Word32 maxWord :: Word32 maxWord = forall a. Bounded a => a maxBound