module-management-0.20.2: testdata/merge5/Apt/AptState.hs
{-# LANGUAGE FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses,
PackageImports, TypeSynonymInstances, UndecidableInstances #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
-- |AptIO is an instance of the RWS monad used to manage the global
-- state and output style parameters of clients of the Apt library,
-- such as the autobuilder.
module Apt.AptState
( AptState(AptState, aptImageMap, binaryPackageMap, releaseMap,
repoMap, sourcePackageMap)
) where
import qualified Data.Map as Map (Map)
import Debian.Release (ReleaseName)
import Debian.Repo.Types (AptImage, BinaryPackage, Release, SourcePackage)
import Debian.Repo.Types.Repo (RepoKey)
import Debian.Repo.Types.Repository (Repository)
import Debian.Sources (SliceName)
import System.Posix.Files (FileStatus)
-- | This represents the state of the IO system.
data AptState
= AptState
{ repoMap :: Map.Map RepoKey Repository -- ^ Map to look up known Repository objects
, releaseMap :: Map.Map (RepoKey, ReleaseName) Release -- ^ Map to look up known Release objects
, aptImageMap :: Map.Map SliceName AptImage -- ^ Map to look up prepared AptImage objects
, sourcePackageMap :: Map.Map FilePath (FileStatus, [SourcePackage])
, binaryPackageMap :: Map.Map FilePath (FileStatus, [BinaryPackage])
}