diff options
Diffstat (limited to 'Logs/Chunk')
-rw-r--r-- | Logs/Chunk/Pure.hs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Logs/Chunk/Pure.hs b/Logs/Chunk/Pure.hs new file mode 100644 index 000000000..09e871c38 --- /dev/null +++ b/Logs/Chunk/Pure.hs @@ -0,0 +1,32 @@ +{- Chunk logs, pure operations. + - + - Copyright 2014 Joey Hess <joey@kitenet.net> + - + - Licensed under the GNU GPL version 3 or higher. + -} + +module Logs.Chunk.Pure where + +import Common.Annex +import Logs.MapLog +import Data.Int + +type ChunkSize = Int64 + +type ChunkCount = Integer + +type ChunkLog = MapLog (UUID, ChunkSize) ChunkCount + +parseLog :: String -> ChunkLog +parseLog = parseMapLog fieldparser valueparser + where + fieldparser s = + let (u,sz) = separate (== ':') s + in (,) <$> pure (toUUID u) <*> readish sz + valueparser = readish + +showLog :: ChunkLog -> String +showLog = showMapLog fieldshower valueshower + where + fieldshower (u, sz) = fromUUID u ++ ':' : show sz + valueshower = show |