crc-0.0.1: src/Data/Digest/CRC.hs
{-# LANGUAGE TypeFamilies #-}
module Data.Digest.CRC
( CRC(..)
, digest
) where
-------------------------------------------------------------------------------
import Data.ByteString as BS
import Data.Vector.Unboxed as V
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
class CRC a where
type CRCWord a
initCRC :: a
crcWord :: a -> CRCWord a
updateDigest :: a -> ByteString -> a
crcTable :: V.Vector (CRCWord a)
digest :: CRC a => ByteString -> a
digest = updateDigest initCRC