{-# LANGUAGE OverloadedStrings #-}
-- |

-- Module : Caching.ExpiringCacheMap.Utils.Types

-- Copyright: (c) 2014 Edward L. Blake

-- License: BSD-style

-- Maintainer: Edward L. Blake <edwardlblake@gmail.com>

-- Stability: experimental

-- Portability: portable

--

-- Simple types.

-- 


module Caching.ExpiringCacheMap.Utils.Types (
    -- * Types

    TimeUnits,
    ECMMapSize,
    ECMULength,
    ECMIncr,
) where

import Data.Word (Word32)

-- | Integer involved in the time units used to determine when an item expires.

-- The time units used can be any arbitrary integer time representation, such

-- as seconds or milliseconds for examples. They can also be deterministic time

-- steps in a sequencing monad.

--

type TimeUnits = Int

-- | Integer involved in the size of a key-value map.

type ECMMapSize = Int

-- | Integer involved in the length of the usage history list.

type ECMULength = Int

-- | Unsigned integer ('Word32') involved in the cache state incrementing accumulator.

type ECMIncr = Word32