module Data.Padding
( zeroPad
, zeroUnpad
) where
import Data.Padding.Util (requiredPadding)
import qualified Data.ByteString as B
import qualified Data.ByteString.Char8 as BC
import Data.Char (chr)
zeroPad :: Int -> B.ByteString -> B.ByteString
zeroPad boundary input = input `B.append` padding
where
padding = BC.replicate padLength (chr 0)
padLength = requiredPadding inputLength boundary
inputLength = B.length input
zeroUnpad :: B.ByteString -> B.ByteString
zeroUnpad = fst . BC.spanEnd (== chr 0)