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