freckle-app-1.0.3.0: Haskell application toolkit used at Freckle
Safe HaskellNone
LanguageHaskell2010

Freckle.App.Env.Internal

Description

Internal Env machinery exposed for testing

Synopsis

Documentation

data Error Source #

Environment parsing errors

Constructors

UnsetError

A variable was not found, and no default was specified

InvalidError String

A variable was found, but it failed to parse

Instances

Instances details
Eq Error Source # 
Instance details

Defined in Freckle.App.Env.Internal

Methods

(==) :: Error -> Error -> Bool #

(/=) :: Error -> Error -> Bool #

Show Error Source # 
Instance details

Defined in Freckle.App.Env.Internal

Methods

showsPrec :: Int -> Error -> ShowS #

show :: Error -> String #

showList :: [Error] -> ShowS #

newtype Parser a Source #

Parse an Environment

Errors are accumulated into tuples mapping name to error.

Constructors

Parser 

Fields

Instances

Instances details
Functor Parser Source # 
Instance details

Defined in Freckle.App.Env.Internal

Methods

fmap :: (a -> b) -> Parser a -> Parser b #

(<$) :: a -> Parser b -> Parser a #

Applicative Parser Source # 
Instance details

Defined in Freckle.App.Env.Internal

Methods

pure :: a -> Parser a #

(<*>) :: Parser (a -> b) -> Parser a -> Parser b #

liftA2 :: (a -> b -> c) -> Parser a -> Parser b -> Parser c #

(*>) :: Parser a -> Parser b -> Parser b #

(<*) :: Parser a -> Parser b -> Parser a #

Alternative Parser Source # 
Instance details

Defined in Freckle.App.Env.Internal

Methods

empty :: Parser a #

(<|>) :: Parser a -> Parser a -> Parser a #

some :: Parser a -> Parser [a] #

many :: Parser a -> Parser [a] #

bindParser :: Parser a -> (a -> Parser b) -> Parser b Source #

Monadic bind for Parser

This short-circuits all parsing and is not ideal for an applicative style parser, which ideally reports all errors instead of short-circuiting. As such a Monad instance is not exposed for Parser.

newtype Reader a Source #

Read a single environment variable's value

This will only ever fail with InvalidError, since UnsetError is handled before invoking any Reader.

Constructors

Reader 

Fields

Instances

Instances details
Functor Reader Source # 
Instance details

Defined in Freckle.App.Env.Internal

Methods

fmap :: (a -> b) -> Reader a -> Reader b #

(<$) :: a -> Reader b -> Reader a #

newtype Mod a Source #

Constructors

Mod (Var a -> Var a) 

Instances

Instances details
Semigroup (Mod a) Source # 
Instance details

Defined in Freckle.App.Env.Internal

Methods

(<>) :: Mod a -> Mod a -> Mod a #

sconcat :: NonEmpty (Mod a) -> Mod a #

stimes :: Integral b => b -> Mod a -> Mod a #

Monoid (Mod a) Source # 
Instance details

Defined in Freckle.App.Env.Internal

Methods

mempty :: Mod a #

mappend :: Mod a -> Mod a -> Mod a #

mconcat :: [Mod a] -> Mod a #

data Var a Source #

Constructors

Var