conferer-1.1.0.0: Configuration management library
Copyright(c) 2019 Lucas David Traverso
LicenseMPL-2.0
MaintainerLucas David Traverso <lucas6246@gmail.com>
Stabilitystable
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell2010

Conferer.Source

Description

Public API module for Source related features

Synopsis

Documentation

data Source Source #

Concrete type for IsSource

Constructors

forall s.(IsSource s, Show s) => Source s 

Instances

Instances details
Show Source Source # 
Instance details

Defined in Conferer.Source.Internal

IsSource Source Source # 
Instance details

Defined in Conferer.Source.Internal

class IsSource s where Source #

Main interface for interacting with external systems that provide configuration which will be used by FromConfig to fetch values.

Methods

getKeyInSource :: s -> Key -> IO (Maybe Text) Source #

This function is used by the Config to get values from this Source.

getSubkeysInSource :: s -> Key -> IO [Key] Source #

This function is used by the Config to list possible values from the Source that if the user getKeyInSource, it will be found.

Instances

Instances details
IsSource Source Source # 
Instance details

Defined in Conferer.Source.Internal

IsSource InMemorySource Source # 
Instance details

Defined in Conferer.Source.InMemory

IsSource EnvSource Source # 
Instance details

Defined in Conferer.Source.Env

IsSource CLIArgsSource Source # 
Instance details

Defined in Conferer.Source.CLIArgs

IsSource NamespacedSource Source # 
Instance details

Defined in Conferer.Source.Namespaced

IsSource NullSource Source # 
Instance details

Defined in Conferer.Source.Null

IsSource PropertiesFileSource Source # 
Instance details

Defined in Conferer.Source.PropertiesFile

type SourceCreator = Config -> IO Source Source #

The type for creating a source given a Config, some sources require a certain configuration to be initialized (for example: the redis source needs connection info to connect to the server)