-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Environment Variable Parser -- -- See README.md @package EVP @version 0.1 module EVP.Internal type Name = String data Error Missing :: Name -> Error ParseError :: Name -> String -> String -> Error CustomError :: String -> Error data ScanF a ScanF :: Name -> (Maybe String -> Either Error (String, a)) -> Maybe String -> ScanF a [name] :: ScanF a -> Name [parser] :: ScanF a -> Maybe String -> Either Error (String, a) [metavar] :: ScanF a -> Maybe String data Scan a [Pure] :: a -> Scan a [Scan] :: ScanF a -> Scan (a -> b) -> Scan b [Group] :: String -> Scan a -> Scan a instance GHC.Show.Show EVP.Internal.Error instance GHC.Base.Functor EVP.Internal.ScanF instance GHC.Base.Functor EVP.Internal.Scan instance GHC.Base.Applicative EVP.Internal.Scan module EVP type Name = String data Error Missing :: Name -> Error ParseError :: Name -> String -> String -> Error CustomError :: String -> Error data Scan a data Var a Var :: Name -> Maybe a -> Maybe String -> Var a [$sel:name:Var] :: Var a -> Name [$sel:defaultValue:Var] :: Var a -> Maybe a [$sel:metavar:Var] :: Var a -> Maybe String -- | Obtain the environment variable. string :: (IsString a, Show a, Typeable a) => Var a -> Scan a -- | Parse the environment variable as a YAML value. yaml :: forall a. (Show a, Typeable a, FromJSON a, ToJSON a) => Var a -> Scan a -- | Parse the environment variable with a custom parser. parse :: Show a => Var a -> (String -> Either String a) -> Scan a -- | Disable logging of parsed values. secret :: Scan a -> Scan a -- | Give a name to a group of parsers. group :: String -> Scan a -> Scan a -- | Provide a default value. defaultsTo :: Var a -> a -> Var a infixl 1 `defaultsTo` data Settings Settings :: (GroupStack -> Name -> String -> IO ()) -> (GroupStack -> Error -> IO ()) -> (Name -> Maybe (IO ())) -> Bool -> Maybe Name -> Settings [$sel:parseLogger:Settings] :: Settings -> GroupStack -> Name -> String -> IO () [$sel:errorLogger:Settings] :: Settings -> GroupStack -> Error -> IO () [$sel:unusedLogger:Settings] :: Settings -> Name -> Maybe (IO ()) -- | exit on warning [$sel:pedantic:Settings] :: Settings -> Bool -- | when an environment varialbe with this name is set, print the help -- message and exit [$sel:helpFlag:Settings] :: Settings -> Maybe Name -- | The default value for this type. def :: Default a => a -- | Parse environment variables with the default settings. scan :: Scan a -> IO a -- | Parse environment variables with custom settings. scanWith :: Settings -> Scan a -> IO a -- | Enumerate the names of the variables it would parse. enumerate :: Scan a -> [Name] -- | Display the list of environment variables and their default values in -- the dotenv format. help :: Scan a -> String type GroupStack = [String] renderError :: Error -> String -- | Custom logging function for unusedLogger. -- assumePrefix p prints a warning for each unused -- environment variable prefixed by p. assumePrefix :: String -> Name -> Maybe (IO ()) -- | obsolete names prints a warning if any of the -- names is set but not used. obsolete :: [Name] -> Name -> Maybe (IO ()) modifyError :: (Error -> Error) -> Scan a -> Scan a instance GHC.Classes.Eq a => GHC.Classes.Eq (EVP.Var a) instance GHC.Show.Show a => GHC.Show.Show (EVP.Var a) instance Data.Default.Class.Default EVP.Settings instance Data.Typeable.Internal.Typeable a => Data.String.IsString (EVP.Var a)