module WithCli.Modifier.Types where

data Modifiers = Modifiers {
  Modifiers -> [(String, String)]
shortOptions :: [(String, [Char])],
  Modifiers -> String -> String
renaming :: String -> String,
  Modifiers -> Maybe (String, String)
positionalArgumentsField :: Maybe (String, String),
  Modifiers -> [(String, String)]
helpTexts :: [(String, String)],
  Modifiers -> Maybe String
version :: Maybe String
 }

getVersion :: Modifiers -> Maybe String
getVersion :: Modifiers -> Maybe String
getVersion Modifiers
modifiers = Modifiers -> Maybe String
version Modifiers
modifiers

isPositionalArgumentsField :: Modifiers -> String -> Bool
isPositionalArgumentsField :: Modifiers -> String -> Bool
isPositionalArgumentsField Modifiers
modifiers String
field =
  forall b a. b -> (a -> b) -> Maybe a -> b
maybe Bool
False ((String
field forall a. Eq a => a -> a -> Bool
==) forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (a, b) -> a
fst) (Modifiers -> Maybe (String, String)
positionalArgumentsField Modifiers
modifiers)

getPositionalArgumentType :: Modifiers -> Maybe String
getPositionalArgumentType :: Modifiers -> Maybe String
getPositionalArgumentType = forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall a b. (a, b) -> b
snd forall b c a. (b -> c) -> (a -> b) -> a -> c
. Modifiers -> Maybe (String, String)
positionalArgumentsField