module Test.Hspec.Core.Extension.Option {-# WARNING "This API is experimental." #-} ( Option , flag , argument , noArgument , optionalArgument ) where import Prelude () import Test.Hspec.Core.Compat import qualified GetOpt.Declarative as Declarative import qualified Test.Hspec.Core.Config.Definition as Core import Test.Hspec.Core.Extension.Config.Type (Option(..), Config) flag :: String -> (Bool -> Config -> Config) -> String -> Option flag :: String -> (Bool -> Config -> Config) -> String -> Option flag String name Bool -> Config -> Config setter = Option Config -> Option Option (Option Config -> Option) -> (String -> Option Config) -> String -> Option forall b c a. (b -> c) -> (a -> b) -> a -> c . String -> (Bool -> Config -> Config) -> String -> Option Config forall config. String -> (Bool -> config -> config) -> String -> Option config Core.flag String name Bool -> Config -> Config setter argument :: String -> String -> (String -> Config -> Maybe Config) -> String -> Option argument :: String -> String -> (String -> Config -> Maybe Config) -> String -> Option argument String name String argumentName String -> Config -> Maybe Config setter = Option Config -> Option Option (Option Config -> Option) -> (String -> Option Config) -> String -> Option forall b c a. (b -> c) -> (a -> b) -> a -> c . String -> OptionSetter Config -> String -> Option Config forall config. String -> OptionSetter config -> String -> Option config Core.option String name (String -> (String -> Config -> Maybe Config) -> OptionSetter Config forall config. String -> (String -> config -> Maybe config) -> OptionSetter config Declarative.Arg String argumentName String -> Config -> Maybe Config setter) optionalArgument :: String -> String -> (Maybe String -> Config -> Maybe Config) -> String -> Option optionalArgument :: String -> String -> (Maybe String -> Config -> Maybe Config) -> String -> Option optionalArgument String name String argumentName Maybe String -> Config -> Maybe Config setter = Option Config -> Option Option (Option Config -> Option) -> (String -> Option Config) -> String -> Option forall b c a. (b -> c) -> (a -> b) -> a -> c . String -> OptionSetter Config -> String -> Option Config forall config. String -> OptionSetter config -> String -> Option config Core.option String name (String -> (Maybe String -> Config -> Maybe Config) -> OptionSetter Config forall config. String -> (Maybe String -> config -> Maybe config) -> OptionSetter config Declarative.OptArg String argumentName Maybe String -> Config -> Maybe Config setter) noArgument :: String -> (Config -> Config) -> String -> Option noArgument :: String -> (Config -> Config) -> String -> Option noArgument String name Config -> Config setter String help = Option Config -> Option Option (Option Config -> Option) -> Option Config -> Option forall a b. (a -> b) -> a -> b $ String -> Maybe Char -> OptionSetter Config -> String -> Bool -> Option Config forall config. String -> Maybe Char -> OptionSetter config -> String -> Bool -> Option config Declarative.Option String name Maybe Char forall a. Maybe a Nothing ((Config -> Config) -> OptionSetter Config forall config. (config -> config) -> OptionSetter config Declarative.NoArg Config -> Config setter) String help Bool False