on master help sign in
Add resourceLazyByteString function
b30123fJasper Van der Jeugt
src/Hakyll/Core/ResourceProvider.hs+6−2
@@ -8,11 +8,15 @@ module Hakyll.Core.ResourceProvider
8
8
9import Hakyll.Core.Identifier
9import Hakyll.Core.Identifier
10
10
11+import qualified Data.ByteString.Lazy as LB
12+
11-- | A value responsible for retrieving and listing resources
13-- | A value responsible for retrieving and listing resources
12--
14--
13data ResourceProvider = ResourceProvider
15data ResourceProvider = ResourceProvider
14 { -- | A list of all resources this provider is able to provide
16 { -- | A list of all resources this provider is able to provide
15− resourceList :: [Identifier]
17+ resourceList :: [Identifier]
16 , -- | Retrieve a certain resource as string
18 , -- | Retrieve a certain resource as string
17− resourceString :: Identifier -> IO String
19+ resourceString :: Identifier -> IO String
20+ , -- | Retrieve a certain resource as lazy bytestring
21+ resourceLazyByteString :: Identifier -> IO LB.ByteString
18 }
22 }
src/Hakyll/Core/ResourceProvider/FileResourceProvider.hs+5−2
@@ -6,6 +6,8 @@ module Hakyll.Core.ResourceProvider.FileResourceProvider
6
6
7import Control.Applicative ((<$>))
7import Control.Applicative ((<$>))
8
8
9+import qualified Data.ByteString.Lazy as LB
10+
9import Hakyll.Core.ResourceProvider
11import Hakyll.Core.ResourceProvider
10import Hakyll.Core.Identifier
12import Hakyll.Core.Identifier
11import Hakyll.Core.Util.File
13import Hakyll.Core.Util.File
@@ -16,6 +18,7 @@ fileResourceProvider :: IO ResourceProvider
16fileResourceProvider = do
18fileResourceProvider = do
17 list <- map parseIdentifier <$> getRecursiveContents "."
19 list <- map parseIdentifier <$> getRecursiveContents "."
18 return $ ResourceProvider
20 return $ ResourceProvider
19− { resourceList = list
21+ { resourceList = list
22+ , resourceString = readFile . toFilePath
20− , resourceString = readFile . toFilePath
23+ , resourceLazyByteString = LB.readFile . toFilePath
21 }
24 }