module Hix.Managed.Data.EnvConfig where

import Data.Aeson (FromJSON)

import Hix.Data.PackageName (LocalPackage)
import Hix.Managed.Cabal.Data.Config (GhcDb)

data EnvConfig =
  EnvConfig {
    EnvConfig -> [LocalPackage]
targets :: [LocalPackage],
    EnvConfig -> GhcDb
ghc :: GhcDb
  }
  deriving stock (EnvConfig -> EnvConfig -> Bool
(EnvConfig -> EnvConfig -> Bool)
-> (EnvConfig -> EnvConfig -> Bool) -> Eq EnvConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: EnvConfig -> EnvConfig -> Bool
== :: EnvConfig -> EnvConfig -> Bool
$c/= :: EnvConfig -> EnvConfig -> Bool
/= :: EnvConfig -> EnvConfig -> Bool
Eq, Int -> EnvConfig -> ShowS
[EnvConfig] -> ShowS
EnvConfig -> String
(Int -> EnvConfig -> ShowS)
-> (EnvConfig -> String)
-> ([EnvConfig] -> ShowS)
-> Show EnvConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> EnvConfig -> ShowS
showsPrec :: Int -> EnvConfig -> ShowS
$cshow :: EnvConfig -> String
show :: EnvConfig -> String
$cshowList :: [EnvConfig] -> ShowS
showList :: [EnvConfig] -> ShowS
Show, (forall x. EnvConfig -> Rep EnvConfig x)
-> (forall x. Rep EnvConfig x -> EnvConfig) -> Generic EnvConfig
forall x. Rep EnvConfig x -> EnvConfig
forall x. EnvConfig -> Rep EnvConfig x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. EnvConfig -> Rep EnvConfig x
from :: forall x. EnvConfig -> Rep EnvConfig x
$cto :: forall x. Rep EnvConfig x -> EnvConfig
to :: forall x. Rep EnvConfig x -> EnvConfig
Generic)
  deriving anyclass (Maybe EnvConfig
Value -> Parser [EnvConfig]
Value -> Parser EnvConfig
(Value -> Parser EnvConfig)
-> (Value -> Parser [EnvConfig])
-> Maybe EnvConfig
-> FromJSON EnvConfig
forall a.
(Value -> Parser a)
-> (Value -> Parser [a]) -> Maybe a -> FromJSON a
$cparseJSON :: Value -> Parser EnvConfig
parseJSON :: Value -> Parser EnvConfig
$cparseJSONList :: Value -> Parser [EnvConfig]
parseJSONList :: Value -> Parser [EnvConfig]
$comittedField :: Maybe EnvConfig
omittedField :: Maybe EnvConfig
FromJSON)