specialize Preparer a bit, so resourcePrepare can be added

The forall a. in Preparer made resourcePrepare not seem to be usable, so
I specialized a to Bool. Which works for both Preparer Storer and
Preparer Retriever, but wouldn't let the Preparer be used for hasKey
as it currently stands.
This commit is contained in:
Joey Hess 2014-08-02 15:34:09 -04:00
parent 1ee24a0366
commit c3750901d8
4 changed files with 7 additions and 6 deletions

View file

@ -14,6 +14,7 @@ module Remote.Helper.ChunkedEncryptable (
simplyPrepare,
ContentSource,
checkPrepare,
resourcePrepare,
fileStorer,
byteStorer,
fileRetriever,
@ -49,6 +50,11 @@ checkPrepare checker helper k a = ifM (checker k)
, a Nothing
)
-- Use to acquire a resource when preparing a helper.
resourcePrepare :: (Key -> (r -> Annex Bool) -> Annex Bool) -> (r -> helper) -> Preparer helper
resourcePrepare withr helper k a = withr k $ \r ->
a (Just (helper r))
-- A Storer that expects to be provided with a file containing
-- the content of the key to store.
fileStorer :: (Key -> FilePath -> MeterUpdate -> Annex Bool) -> Storer