dropdead per-remote metadata

Had to refactor pure code into separate modules so it is accessible
inside Annex.Branch.Transitions.

This commit was sponsored by Peter on Patreon.
This commit is contained in:
Joey Hess 2018-09-05 13:20:10 -04:00
parent f1e5dfb7c7
commit 0a7c5a9982
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
9 changed files with 197 additions and 109 deletions

View file

@ -38,6 +38,7 @@ module Types.MetaData (
modMeta,
RemoteMetaData(..),
extractRemoteMetaData,
splitRemoteMetaDataField,
fromRemoteMetaData,
prop_metadata_sane,
prop_metadata_serialize
@ -301,6 +302,12 @@ extractRemoteMetaData u (MetaData m) = RemoteMetaData u $ MetaData $
prefix = remoteMetaDataPrefix u
prefixlen = length prefix
splitRemoteMetaDataField :: MetaField -> Maybe (UUID, MetaField)
splitRemoteMetaDataField (MetaField f) = do
let (su, sf) = separate (== ':') (CI.original f)
f' <- toMetaField sf
return $ (toUUID su, f')
remoteMetaDataPrefix :: UUID -> String
remoteMetaDataPrefix u = fromUUID u ++ ":"