{-# LANGUAGE NoImplicitPrelude #-}
module Headroom.Command.Gen.Env
( GenMode(..)
, GenOptions(..)
, Env(..)
)
where
import RIO
newtype GenOptions = GenOptions
{ GenOptions -> GenMode
goGenMode :: GenMode
}
deriving Int -> GenOptions -> ShowS
[GenOptions] -> ShowS
GenOptions -> String
(Int -> GenOptions -> ShowS)
-> (GenOptions -> String)
-> ([GenOptions] -> ShowS)
-> Show GenOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GenOptions] -> ShowS
$cshowList :: [GenOptions] -> ShowS
show :: GenOptions -> String
$cshow :: GenOptions -> String
showsPrec :: Int -> GenOptions -> ShowS
$cshowsPrec :: Int -> GenOptions -> ShowS
Show
data Env = Env
{ Env -> LogFunc
envLogFunc :: !LogFunc
, Env -> GenOptions
envGenOptions :: !GenOptions
}
data GenMode
= GenConfigFile
| GenLicense Text
deriving (GenMode -> GenMode -> Bool
(GenMode -> GenMode -> Bool)
-> (GenMode -> GenMode -> Bool) -> Eq GenMode
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GenMode -> GenMode -> Bool
$c/= :: GenMode -> GenMode -> Bool
== :: GenMode -> GenMode -> Bool
$c== :: GenMode -> GenMode -> Bool
Eq, Int -> GenMode -> ShowS
[GenMode] -> ShowS
GenMode -> String
(Int -> GenMode -> ShowS)
-> (GenMode -> String) -> ([GenMode] -> ShowS) -> Show GenMode
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GenMode] -> ShowS
$cshowList :: [GenMode] -> ShowS
show :: GenMode -> String
$cshow :: GenMode -> String
showsPrec :: Int -> GenMode -> ShowS
$cshowsPrec :: Int -> GenMode -> ShowS
Show)
instance HasLogFunc Env where
logFuncL :: (LogFunc -> f LogFunc) -> Env -> f Env
logFuncL = (Env -> LogFunc) -> (Env -> LogFunc -> Env) -> Lens' Env LogFunc
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens Env -> LogFunc
envLogFunc (\x :: Env
x y :: LogFunc
y -> Env
x { envLogFunc :: LogFunc
envLogFunc = LogFunc
y })