summaryrefslogtreecommitdiff
path: root/Types/Key.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Types/Key.hs')
-rw-r--r--Types/Key.hs15
1 files changed, 15 insertions, 0 deletions
diff --git a/Types/Key.hs b/Types/Key.hs
index 90f66f23e..154e813ff 100644
--- a/Types/Key.hs
+++ b/Types/Key.hs
@@ -13,6 +13,8 @@ module Types.Key (
stubKey,
key2file,
file2key,
+ nonChunkKey,
+ chunkKeyOffset,
prop_idempotent_key_encode,
prop_idempotent_key_decode
@@ -47,6 +49,19 @@ stubKey = Key
, keyChunkNum = Nothing
}
+-- Gets the parent of a chunk key.
+nonChunkKey :: Key -> Key
+nonChunkKey k = k
+ { keyChunkSize = Nothing
+ , keyChunkNum = Nothing
+ }
+
+-- Where a chunk key is offset within its parent.
+chunkKeyOffset :: Key -> Maybe Integer
+chunkKeyOffset k = (*)
+ <$> keyChunkSize k
+ <*> (pred <$> keyChunkNum k)
+
fieldSep :: Char
fieldSep = '-'