我正在尝试使用optparse-applicative解析 aMaybe String
但我无法找到如何处理Maybe
. 我发现的唯一一件事是添加一个默认值,但我真的需要一个Nothing
if 用户没有提供选项而不是""
. 有没有办法做到这一点?
这是工作代码的示例:
import Options.Applicative
data Config = Config
{ cIn :: String
, cOut :: String
} deriving Show
configParser :: Parser Config
configParser = Config
<$> strOption (long "in" <> short 'i')
<*> strOption (long "out" <> short 'o')
main :: IO ()
main = do
conf <- execParser (info configParser fullDesc)
print conf
但是,我希望参数是可选的并使用Maybe String
而不是String
in Config
:
data Config = Config
{ cIn :: Maybe String
, cOut :: Maybe String
} deriving Show