module Hix.Managed.Data.LowerConfig where

import qualified Hix.Data.Options
import Hix.Data.Options (LowerOptions (LowerOptions))

data LowerConfig =
  LowerConfig {
    LowerConfig -> Bool
initOnly :: Bool,
    LowerConfig -> Bool
reset :: Bool,
    LowerConfig -> Bool
stabilize :: Bool
  }
  deriving stock (LowerConfig -> LowerConfig -> Bool
(LowerConfig -> LowerConfig -> Bool)
-> (LowerConfig -> LowerConfig -> Bool) -> Eq LowerConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: LowerConfig -> LowerConfig -> Bool
== :: LowerConfig -> LowerConfig -> Bool
$c/= :: LowerConfig -> LowerConfig -> Bool
/= :: LowerConfig -> LowerConfig -> Bool
Eq, Int -> LowerConfig -> ShowS
[LowerConfig] -> ShowS
LowerConfig -> String
(Int -> LowerConfig -> ShowS)
-> (LowerConfig -> String)
-> ([LowerConfig] -> ShowS)
-> Show LowerConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> LowerConfig -> ShowS
showsPrec :: Int -> LowerConfig -> ShowS
$cshow :: LowerConfig -> String
show :: LowerConfig -> String
$cshowList :: [LowerConfig] -> ShowS
showList :: [LowerConfig] -> ShowS
Show, (forall x. LowerConfig -> Rep LowerConfig x)
-> (forall x. Rep LowerConfig x -> LowerConfig)
-> Generic LowerConfig
forall x. Rep LowerConfig x -> LowerConfig
forall x. LowerConfig -> Rep LowerConfig x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. LowerConfig -> Rep LowerConfig x
from :: forall x. LowerConfig -> Rep LowerConfig x
$cto :: forall x. Rep LowerConfig x -> LowerConfig
to :: forall x. Rep LowerConfig x -> LowerConfig
Generic)

lowerConfig :: LowerOptions -> LowerConfig
lowerConfig :: LowerOptions -> LowerConfig
lowerConfig LowerOptions {Bool
ManagedOptions
common :: ManagedOptions
initOnly :: Bool
reset :: Bool
stabilize :: Bool
stabilize :: LowerOptions -> Bool
reset :: LowerOptions -> Bool
initOnly :: LowerOptions -> Bool
common :: LowerOptions -> ManagedOptions
..} =
  LowerConfig {Bool
initOnly :: Bool
reset :: Bool
stabilize :: Bool
initOnly :: Bool
reset :: Bool
stabilize :: Bool
..}

instance Default LowerConfig where
  def :: LowerConfig
def =
    LowerConfig {
      initOnly :: Bool
initOnly = Bool
False,
      reset :: Bool
reset = Bool
False,
      stabilize :: Bool
stabilize = Bool
False
    }