conferer-0.1.0.0: src/Conferer/Provider/Namespaced.hs
module Conferer.Provider.Namespaced where
import Data.List (stripPrefix)
import Conferer.Types
mkNamespacedProvider :: Key -> ProviderCreator -> ProviderCreator
mkNamespacedProvider (Path key) configCreator = \config -> do
configProvider <- configCreator config
return $ Provider
{ getKeyInProvider = \(Path k) -> do
case stripPrefix key k of
Just newKey -> getKeyInProvider configProvider (Path newKey)
Nothing -> return Nothing
}