Safe Haskell | None |
---|---|
Language | Haskell2010 |
An Environment
contains textual key value pairs, relavant for string template
substitution.
The variables are passed to the B9 build either via command line, OS environment variables or configuration file.
Since: 0.5.62
Synopsis
- data Environment
- fromStringPairs :: [(String, String)] -> Environment
- addStringBinding :: MonadThrow m => (String, String) -> Environment -> m Environment
- insertPositionalArguments :: [Text] -> Environment -> Environment
- type EnvironmentReaderT m a = ReaderT Environment m a
- type MonadEnvironment m = MonadReader Environment m
- runEnvironmentReaderT :: Environment -> EnvironmentReaderT m a -> m a
- askEnvironment :: MonadEnvironment m => m Environment
- localEnvironment :: MonadEnvironment m => (Environment -> Environment) -> m a -> m a
- lookupOrThrow :: (MonadThrow m, MonadEnvironment m) => Text -> m Text
- lookupEither :: MonadEnvironment m => Text -> m (Either KeyNotFound Text)
- data KeyNotFound = MkKeyNotFound Text Environment
- data DuplicateKey = MkDuplicateKey {}
Documentation
data Environment Source #
A map of textual keys to textual values.
Since: 0.5.62
Instances
fromStringPairs :: [(String, String)] -> Environment Source #
Create an Environment
from a list of pairs (String
s)
Since: 0.5.62
addStringBinding :: MonadThrow m => (String, String) -> Environment -> m Environment Source #
Insert a value into an Environment
.
Since: 0.5.62
insertPositionalArguments :: [Text] -> Environment -> Environment Source #
If environment variables arg_1 .. arg_n
are bound
and a list of k
additional values are passed to this function,
store them with keys arg_(n+1) .. arg_(n+k)
.
Note that the Environment contains an index of the next position.
Since: 0.5.62
type EnvironmentReaderT m a = ReaderT Environment m a Source #
A monad transformer providing a MonadReader
instance for Environment
Since: 0.5.62
type MonadEnvironment m = MonadReader Environment m Source #
A constraint on a monad m
ensuring (read-only) access to an Environment
Since: 0.5.62
runEnvironmentReaderT :: Environment -> EnvironmentReaderT m a -> m a Source #
Run a ReaderT
of Environment
.
Since: 0.5.62
askEnvironment :: MonadEnvironment m => m Environment Source #
Get the current Environment
Since: 0.5.62
localEnvironment :: MonadEnvironment m => (Environment -> Environment) -> m a -> m a Source #
Run a computation with a modified Environment
Since: 0.5.62
lookupOrThrow :: (MonadThrow m, MonadEnvironment m) => Text -> m Text Source #
Lookup a key for a value.
throwM
a KeyNotFound
Exception
if no value with the given key exists
in the Environment
.
@Since 0.5.62
lookupEither :: MonadEnvironment m => Text -> m (Either KeyNotFound Text) Source #
Lookup a key for a value.
Return Either
Left
KeyNotFound
, if no value with the given key exists
in the Environment
, or Right
the value.
@Since 0.5.62
data KeyNotFound Source #
An Exception
thrown by lookupOrThrow
indicating that a key does not exist.
@Since 0.5.62
Instances
Show KeyNotFound Source # | |
Defined in B9.Environment showsPrec :: Int -> KeyNotFound -> ShowS # show :: KeyNotFound -> String # showList :: [KeyNotFound] -> ShowS # | |
Exception KeyNotFound Source # | |
Defined in B9.Environment |
data DuplicateKey Source #
An Exception
thrown by addBinding
indicating that a key already exists.
@Since 0.5.62
Instances
Show DuplicateKey Source # | |
Defined in B9.Environment showsPrec :: Int -> DuplicateKey -> ShowS # show :: DuplicateKey -> String # showList :: [DuplicateKey] -> ShowS # | |
Exception DuplicateKey Source # | |
Defined in B9.Environment |