hwsl2-0.3.2.0: src/Data/Hash/SL2/Chunk.hs
module Data.Hash.SL2.Chunk where
import Data.ByteString
import Data.Hash.SL2
import Data.Monoid
data Chunk = Chunk
{ getChunkHash :: Hash
, getChunkBytes :: ByteString
}
instance Eq Chunk where
a == b = getChunkHash a == getChunkHash b
instance Ord Chunk where
compare a b = compare (getChunkHash a) (getChunkHash b)
instance Monoid Chunk where
mempty = Chunk mempty mempty
mappend a b = Chunk (getChunkHash a <> getChunkHash b) (getChunkBytes a <> getChunkBytes b)
mconcat as = Chunk (mconcat $ fmap getChunkHash as) (mconcat $ fmap getChunkBytes as)
fromByteString :: ByteString -> Chunk
fromByteString b = Chunk (hash b) b