-- 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)