-- |
-- Module      : CLI.Types.Env
-- License     : BSD3
-- Maintainer  : tbidne@gmail.com
-- Provides core 'Env' types used with CLI.
module CLI.Types.Env
  ( Env (..),
  )
where

import Common.RefinedUtils
import qualified Data.Map.Strict as M
import qualified Data.Text as T

-- | Provides a list of commands and legend map.
data Env
  = Env
      { Env -> Map Text Text
legend :: M.Map T.Text T.Text,
        Env -> Maybe (RNonNegative Int)
timeout :: Maybe (RNonNegative Int),
        Env -> [Text]
commands :: [T.Text]
      }
  deriving (Int -> Env -> ShowS
[Env] -> ShowS
Env -> String
(Int -> Env -> ShowS)
-> (Env -> String) -> ([Env] -> ShowS) -> Show Env
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Env] -> ShowS
$cshowList :: [Env] -> ShowS
show :: Env -> String
$cshow :: Env -> String
showsPrec :: Int -> Env -> ShowS
$cshowsPrec :: Int -> Env -> ShowS
Show)