conferer-0.4.0.0: src/Conferer/Source/Simple.hs
module Conferer.Source.Simple
(
-- * Simple Source
-- | This source provides values from a hardcoded Map passed at creation
-- time that can not be changed afterwards, it's mostly used as a necessary
-- utility
mkMapSource
, mkMapSource'
, mkPureMapSource
) where
import Data.Map (Map)
import qualified Data.Map as Map
import Data.Text (Text)
import Conferer.Types
-- | Make a 'SourceCreator' from a 'Map'
mkMapSource' :: Map Key Text -> SourceCreator
mkMapSource' configMap _config =
return $ mkPureMapSource configMap
-- | Make a 'Source' from a 'Map'
mkPureMapSource :: Map Key Text -> Source
mkPureMapSource configMap =
Source
{ getKeyInSource =
\k -> do
return $ Map.lookup k configMap
}
-- | Make a 'Source' from 'List' of 'Key', 'Text' pairs
mkMapSource :: [(Key, Text)] -> SourceCreator
mkMapSource = mkMapSource' . Map.fromList