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 (Int -> CacheTTL -> ShowS) -> (CacheTTL -> String) -> ([CacheTTL] -> ShowS) -> Show CacheTTL 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 (CacheTTL -> CacheTTL -> Bool) -> (CacheTTL -> CacheTTL -> Bool) -> Eq CacheTTL 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 Eq CacheTTL -> (CacheTTL -> CacheTTL -> Ordering) -> (CacheTTL -> CacheTTL -> Bool) -> (CacheTTL -> CacheTTL -> Bool) -> (CacheTTL -> CacheTTL -> Bool) -> (CacheTTL -> CacheTTL -> Bool) -> (CacheTTL -> CacheTTL -> CacheTTL) -> (CacheTTL -> CacheTTL -> CacheTTL) -> Ord 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 $cp1Ord :: Eq CacheTTL Ord, Int -> CacheTTL CacheTTL -> Int CacheTTL -> [CacheTTL] CacheTTL -> CacheTTL CacheTTL -> CacheTTL -> [CacheTTL] CacheTTL -> CacheTTL -> CacheTTL -> [CacheTTL] (CacheTTL -> CacheTTL) -> (CacheTTL -> CacheTTL) -> (Int -> CacheTTL) -> (CacheTTL -> Int) -> (CacheTTL -> [CacheTTL]) -> (CacheTTL -> CacheTTL -> [CacheTTL]) -> (CacheTTL -> CacheTTL -> [CacheTTL]) -> (CacheTTL -> CacheTTL -> CacheTTL -> [CacheTTL]) -> Enum 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 (CacheTTL -> CacheTTL -> CacheTTL) -> (CacheTTL -> CacheTTL -> CacheTTL) -> (CacheTTL -> CacheTTL -> CacheTTL) -> (CacheTTL -> CacheTTL) -> (CacheTTL -> CacheTTL) -> (CacheTTL -> CacheTTL) -> (Integer -> CacheTTL) -> Num 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 Num CacheTTL -> Ord CacheTTL -> (CacheTTL -> Rational) -> Real CacheTTL CacheTTL -> Rational forall a. Num a -> Ord a -> (a -> Rational) -> Real a toRational :: CacheTTL -> Rational $ctoRational :: CacheTTL -> Rational $cp2Real :: Ord CacheTTL $cp1Real :: Num CacheTTL Real, Enum CacheTTL Real CacheTTL Real CacheTTL -> Enum CacheTTL -> (CacheTTL -> CacheTTL -> CacheTTL) -> (CacheTTL -> CacheTTL -> CacheTTL) -> (CacheTTL -> CacheTTL -> CacheTTL) -> (CacheTTL -> CacheTTL -> CacheTTL) -> (CacheTTL -> CacheTTL -> (CacheTTL, CacheTTL)) -> (CacheTTL -> CacheTTL -> (CacheTTL, CacheTTL)) -> (CacheTTL -> Integer) -> Integral 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 $cp2Integral :: Enum CacheTTL $cp1Integral :: Real CacheTTL Integral) cacheTTL :: Int -> CacheTTL cacheTTL :: Int -> CacheTTL cacheTTL = Int -> CacheTTL CacheTTL fromCacheTTL :: CacheTTL -> Expiration fromCacheTTL :: CacheTTL -> Expiration fromCacheTTL (CacheTTL Int i) | Int i Int -> Int -> Bool forall a. Ord a => a -> a -> Bool < Expiration -> Int forall a b. (Integral a, Num b) => a -> b fromIntegral Expiration minWord = Expiration minWord | Int i Int -> Int -> Bool forall a. Ord a => a -> a -> Bool > Expiration -> Int forall a b. (Integral a, Num b) => a -> b fromIntegral Expiration maxWord = Expiration maxWord | Bool otherwise = Int -> Expiration forall a b. (Integral a, Num b) => a -> b fromIntegral Int i where minWord :: Word32 minWord :: Expiration minWord = Expiration forall a. Bounded a => a minBound maxWord :: Word32 maxWord :: Expiration maxWord = Expiration forall a. Bounded a => a maxBound