describe-0.3.0.1: src/Data/Serialize/Describe/Combinators/Remaining.hs
module Data.Serialize.Describe.Combinators.Remaining where
import Data.ByteString
import qualified Data.Serialize.Get as G
import qualified Data.Serialize.Put as P
import Data.Serialize.Describe.Descriptor
import Data.Serialize.Describe.Class
-- | A 'Remaining' represents the rest of the buffer. Upon serialization, the entire wrapped ByteString will be written.
newtype Remaining = Remaining { unwrapRemaining :: ByteString }
instance Describe Remaining where
describe f = Descriptor (fmap Remaining . G.getByteString =<< G.remaining, \s -> P.putByteString (unwrapRemaining (f s)) >> pure (f s))