module Stack.Types.PackageDump
( InstalledCache(..)
, InstalledCacheInner(..)
, InstalledCacheEntry(..)
, installedCacheVC
) where
import Data.Data
import Data.IORef
import Data.Map (Map)
import Data.Store
import Data.Store.Version
import Data.Store.VersionTagged
import GHC.Generics (Generic)
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="