diff options
author | Jasper Van der Jeugt <jaspervdj@gmail.com> | 2012-08-07 17:12:20 -0700 |
---|---|---|
committer | Jasper Van der Jeugt <jaspervdj@gmail.com> | 2012-08-07 17:12:20 -0700 |
commit | fdc62430a6ddde912931e286b6ae76c2505ade0b (patch) | |
tree | 3d33e972cf91584231a33109ede35df333fad02b /src/Hakyll/Core/Resource | |
parent | 961af33e82e3f40c39b500f93adb828ad77ab2a1 (diff) | |
parent | d49694f58b6e75f76bb4dba6f3640161aa742df5 (diff) | |
download | hakyll-fdc62430a6ddde912931e286b6ae76c2505ade0b.tar.gz |
Merge pull request #77 from A1kmm/master
Make Resource Provider keep list of files in a set, rather than as a list
Diffstat (limited to 'src/Hakyll/Core/Resource')
-rw-r--r-- | src/Hakyll/Core/Resource/Provider.hs | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/Hakyll/Core/Resource/Provider.hs b/src/Hakyll/Core/Resource/Provider.hs index d91c374..14848a8 100644 --- a/src/Hakyll/Core/Resource/Provider.hs +++ b/src/Hakyll/Core/Resource/Provider.hs @@ -12,6 +12,7 @@ -- module Hakyll.Core.Resource.Provider ( ResourceProvider (..) + , resourceList , makeResourceProvider , resourceExists , resourceDigest @@ -22,6 +23,7 @@ import Control.Applicative ((<$>)) import Control.Concurrent (MVar, readMVar, modifyMVar_, newMVar) import Data.Map (Map) import qualified Data.Map as M +import qualified Data.Set as S import Data.Time (UTCTime) import qualified Crypto.Hash.MD5 as MD5 @@ -35,7 +37,7 @@ import Hakyll.Core.Resource -- data ResourceProvider = ResourceProvider { -- | A list of all resources this provider is able to provide - resourceList :: [Resource] + resourceSet :: S.Set Resource , -- | Retrieve a certain resource as string resourceString :: Resource -> IO String , -- | Retrieve a certain resource as lazy bytestring @@ -53,12 +55,16 @@ makeResourceProvider :: [Resource] -- ^ Resource list -> (Resource -> IO LB.ByteString) -- ^ ByteString reader -> (Resource -> IO UTCTime) -- ^ Time checker -> IO ResourceProvider -- ^ Resulting provider -makeResourceProvider l s b t = ResourceProvider l s b t <$> newMVar M.empty +makeResourceProvider l s b t = ResourceProvider (S.fromList l) s b t <$> newMVar M.empty + +-- | Get the list of all resources +resourceList :: ResourceProvider -> [Resource] +resourceList = S.toList . resourceSet -- | Check if a given identifier has a resource -- resourceExists :: ResourceProvider -> Resource -> Bool -resourceExists provider = flip elem $ resourceList provider +resourceExists provider = flip S.member $ resourceSet provider -- | Retrieve a digest for a given resource -- |