{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module Stack.Types.PackageDump
( InstalledCache(..)
, InstalledCacheInner(..)
, InstalledCacheEntry(..)
, installedCacheVC
) where
import Data.Store
import Data.Store.Version
import Data.Store.VersionTagged
import Stack.Prelude
import Stack.Types.GhcPkgId
import Stack.Types.PackageIdentifier
newtype InstalledCache = InstalledCache (IORef InstalledCacheInner)
newtype InstalledCacheInner = InstalledCacheInner (Map GhcPkgId InstalledCacheEntry)
deriving (Store, Generic, Eq, Show, Data, Typeable)
data InstalledCacheEntry = InstalledCacheEntry
{ installedCacheProfiling :: !Bool
, installedCacheHaddock :: !Bool
, installedCacheSymbols :: !Bool
, installedCacheIdent :: !PackageIdentifier }
deriving (Eq, Generic, Show, Data, Typeable)
instance Store InstalledCacheEntry
installedCacheVC :: VersionConfig InstalledCacheInner
installedCacheVC = storeVersionConfig "installed-v1" "GGyaE6qY9FOqeWtozuadKqS7_QM="