{-# LANGUAGE DeriveGeneric #-}
module Distribution.Solver.Types.SolverPackage
( SolverPackage(..)
) where
import Distribution.Solver.Compat.Prelude
import Prelude ()
import Distribution.Package ( Package(..) )
import Distribution.PackageDescription ( FlagAssignment )
import Distribution.Solver.Types.ComponentDeps ( ComponentDeps )
import Distribution.Solver.Types.OptionalStanza
import Distribution.Solver.Types.SolverId
import Distribution.Solver.Types.SourcePackage
data SolverPackage loc = SolverPackage {
forall loc. SolverPackage loc -> SourcePackage loc
solverPkgSource :: SourcePackage loc,
forall loc. SolverPackage loc -> FlagAssignment
solverPkgFlags :: FlagAssignment,
forall loc. SolverPackage loc -> OptionalStanzaSet
solverPkgStanzas :: OptionalStanzaSet,
forall loc. SolverPackage loc -> ComponentDeps [SolverId]
solverPkgLibDeps :: ComponentDeps [SolverId],
forall loc. SolverPackage loc -> ComponentDeps [SolverId]
solverPkgExeDeps :: ComponentDeps [SolverId]
}
deriving (SolverPackage loc -> SolverPackage loc -> Bool
forall loc.
Eq loc =>
SolverPackage loc -> SolverPackage loc -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SolverPackage loc -> SolverPackage loc -> Bool
$c/= :: forall loc.
Eq loc =>
SolverPackage loc -> SolverPackage loc -> Bool
== :: SolverPackage loc -> SolverPackage loc -> Bool
$c== :: forall loc.
Eq loc =>
SolverPackage loc -> SolverPackage loc -> Bool
Eq, Int -> SolverPackage loc -> ShowS
forall loc. Show loc => Int -> SolverPackage loc -> ShowS
forall loc. Show loc => [SolverPackage loc] -> ShowS
forall loc. Show loc => SolverPackage loc -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SolverPackage loc] -> ShowS
$cshowList :: forall loc. Show loc => [SolverPackage loc] -> ShowS
show :: SolverPackage loc -> String
$cshow :: forall loc. Show loc => SolverPackage loc -> String
showsPrec :: Int -> SolverPackage loc -> ShowS
$cshowsPrec :: forall loc. Show loc => Int -> SolverPackage loc -> ShowS
Show, forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall loc x. Rep (SolverPackage loc) x -> SolverPackage loc
forall loc x. SolverPackage loc -> Rep (SolverPackage loc) x
$cto :: forall loc x. Rep (SolverPackage loc) x -> SolverPackage loc
$cfrom :: forall loc x. SolverPackage loc -> Rep (SolverPackage loc) x
Generic)
instance Binary loc => Binary (SolverPackage loc)
instance Structured loc => Structured (SolverPackage loc)
instance Package (SolverPackage loc) where
packageId :: SolverPackage loc -> PackageIdentifier
packageId = forall pkg. Package pkg => pkg -> PackageIdentifier
packageId forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall loc. SolverPackage loc -> SourcePackage loc
solverPkgSource