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
- addBinding :: Member ExcB9 e => (Text, Text) -> Environment -> Eff e Environment
- addStringBinding :: Member ExcB9 e => (String, String) -> Environment -> Eff e Environment
- addLocalStringBinding :: (Member EnvironmentReader e, Member ExcB9 e) => (String, String) -> Eff e a -> Eff e a
- addPositionalArguments :: [Text] -> Environment -> Environment
- addLocalPositionalArguments :: Member EnvironmentReader e => [String] -> Eff e a -> Eff e a
- type EnvironmentReader = Reader Environment
- hasKey :: Member EnvironmentReader e => Text -> Eff e Bool
- runEnvironmentReader :: Environment -> Eff (EnvironmentReader ': e) a -> Eff e a
- askEnvironment :: Member EnvironmentReader e => Eff e Environment
- localEnvironment :: Member EnvironmentReader e => (Environment -> Environment) -> Eff e a -> Eff e a
- lookupOrThrow :: '[ExcB9, EnvironmentReader] <:: e => Text -> Eff e Text
- lookupEither :: Member EnvironmentReader e => Text -> Eff e (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).
Duplicated entries are ignored.
Since: 0.5.62
addBinding :: Member ExcB9 e => (Text, Text) -> Environment -> Eff e Environment Source #
Insert a key value binding to the Environment
.
Throw DuplicateKey
if the key already exists, but
the value is not equal to the given value.
Since: 0.5.67
addStringBinding :: Member ExcB9 e => (String, String) -> Environment -> Eff e Environment Source #
Insert String
s into the Environment
, see addBinding
.
Since: 0.5.62
addLocalStringBinding :: (Member EnvironmentReader e, Member ExcB9 e) => (String, String) -> Eff e a -> Eff e a Source #
Insert a value into an Environment
like addStringBinding
,
but add it to the environment of the given effect, as in localEnvironment
.
Since: 0.5.65
addPositionalArguments :: [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
addLocalPositionalArguments :: Member EnvironmentReader e => [String] -> Eff e a -> Eff e a Source #
Convenient wrapper around addPositionalArguments
and localEnvironment
.
Since: 0.5.65
type EnvironmentReader = Reader Environment Source #
A monad transformer providing a MonadReader
instance for Environment
Since: 0.5.62
hasKey :: Member EnvironmentReader e => Text -> Eff e Bool Source #
A predicate that is satisfied when a key exists in the environment.
Since: 0.5.64
runEnvironmentReader :: Environment -> Eff (EnvironmentReader ': e) a -> Eff e a Source #
Run a ReaderT
of Environment
.
Since: 0.5.62
askEnvironment :: Member EnvironmentReader e => Eff e Environment Source #
Get the current Environment
Since: 0.5.62
localEnvironment :: Member EnvironmentReader e => (Environment -> Environment) -> Eff e a -> Eff e a Source #
Run a computation with a modified Environment
Since: 0.5.62
lookupOrThrow :: '[ExcB9, EnvironmentReader] <:: e => Text -> Eff e 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 :: Member EnvironmentReader e => Text -> Eff e (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 |