summaryrefslogtreecommitdiff
path: root/src/Text/Hakyll/Internal/Cache.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Text/Hakyll/Internal/Cache.hs')
-rw-r--r--src/Text/Hakyll/Internal/Cache.hs6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/Text/Hakyll/Internal/Cache.hs b/src/Text/Hakyll/Internal/Cache.hs
index 9b9fab1..d28f849 100644
--- a/src/Text/Hakyll/Internal/Cache.hs
+++ b/src/Text/Hakyll/Internal/Cache.hs
@@ -8,12 +8,18 @@ import Text.Hakyll.Hakyll (Hakyll)
import Text.Hakyll.File
import Data.Binary
+-- | We can store all datatypes instantiating @Binary@ to the cache. The cache
+-- directory is specified by the @HakyllConfiguration@, usually @_cache@.
storeInCache :: (Binary a) => a -> FilePath -> Hakyll ()
storeInCache value path = do
cachePath <- toCache path
makeDirectories cachePath
liftIO $ encodeFile cachePath value
+-- | Get a value from the cache. The filepath given should not be located in the
+-- cache. This function performs a timestamp check on the filepath and the
+-- filepath in the cache, and only returns the cached value when it is still
+-- up-to-date.
getFromCache :: (Binary a) => FilePath -> Hakyll (Maybe a)
getFromCache path = do
cachePath <- toCache path