cabal-install-3.14.1.1: src/Distribution/Client/Types/BuildResults.hs
{-# LANGUAGE DeriveGeneric #-}
module Distribution.Client.Types.BuildResults
( BuildOutcome
, BuildOutcomes
, BuildFailure (..)
, BuildResult (..)
, TestsResult (..)
, DocsResult (..)
) where
import Distribution.Client.Compat.Prelude
import Prelude ()
import Distribution.Types.InstalledPackageInfo (InstalledPackageInfo)
import Distribution.Types.PackageId (PackageId)
import Distribution.Types.UnitId (UnitId)
-- | A summary of the outcome for building a single package.
type BuildOutcome = Either BuildFailure BuildResult
-- | A summary of the outcome for building a whole set of packages.
type BuildOutcomes = Map UnitId BuildOutcome
data BuildFailure
= PlanningFailed
| DependentFailed PackageId
| GracefulFailure String
| DownloadFailed SomeException
| UnpackFailed SomeException
| ConfigureFailed SomeException
| BuildFailed SomeException
| TestsFailed SomeException
| InstallFailed SomeException
deriving (Show, Generic)
instance Exception BuildFailure
-- Note that the @Maybe InstalledPackageInfo@ is a slight hack: we only
-- the public library's 'InstalledPackageInfo' is stored here, even if
-- there were 'InstalledPackageInfo' from internal libraries. This
-- 'InstalledPackageInfo' is not used anyway, so it makes no difference.
data BuildResult
= BuildResult
DocsResult
TestsResult
(Maybe InstalledPackageInfo)
deriving (Show, Generic)
data DocsResult = DocsNotTried | DocsFailed | DocsOk
deriving (Show, Generic)
data TestsResult = TestsNotTried | TestsOk
deriving (Show, Generic)
instance Binary BuildFailure
instance Binary BuildResult
instance Binary DocsResult
instance Binary TestsResult
instance Structured BuildFailure
instance Structured BuildResult
instance Structured DocsResult
instance Structured TestsResult