network-byte-order 0.1.4.0 → 0.1.5
raw patch · 2 files changed
+24/−6 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Network.ByteOrder: clearWriteBuffer :: WriteBuffer -> IO ()
+ Network.ByteOrder: goBack :: Readable a => a -> IO ()
Files
- Network/ByteOrder.hs +23/−5
- network-byte-order.cabal +1/−1
Network/ByteOrder.hs view
@@ -51,6 +51,7 @@ -- *Writing to buffer , WriteBuffer(..) , newWriteBuffer+ , clearWriteBuffer , withWriteBuffer , withWriteBuffer' , write8@@ -369,6 +370,12 @@ newWriteBuffer buf siz = WriteBuffer buf (buf `plusPtr` siz) <$> newIORef buf <*> newIORef buf +-- | Reseting a write buffer.+clearWriteBuffer :: WriteBuffer -> IO ()+clearWriteBuffer WriteBuffer{..} = do+ writeIORef offset start+ writeIORef oldoffset start+ {-# INLINE write8 #-} -- | Write one byte and ff one byte. -- If buffer overrun occurs, 'BufferOverrun' is thrown.@@ -561,16 +568,19 @@ save :: a -> IO () -- | Getting how many bytes from the saved offset pinter. savingSize :: a -> IO Int+ -- | Moving the offset point to the saved point.+ goBack :: a -> IO () instance Readable WriteBuffer where {-# INLINE read8 #-} read8 WriteBuffer{..} = do ptr <- readIORef offset- let ptr' = ptr `plusPtr` 1- when (ptr' > limit) $ throwIO BufferOverrun- w <- peek ptr- writeIORef offset ptr'- return w+ if ptr < limit then do+ w <- peek ptr+ writeIORef offset $ ptr `plusPtr` 1+ return w+ else+ throwIO BufferOverrun {-# INLINE readInt8 #-} readInt8 WriteBuffer{..} = do ptr <- readIORef offset@@ -585,6 +595,8 @@ ff WriteBuffer{..} n = do ptr <- readIORef offset let ptr' = ptr `plusPtr` n+ when (ptr' < start) $ throwIO BufferOverrun+ when (ptr' > limit) $ throwIO BufferOverrun -- not >= writeIORef offset ptr' {-# INLINE remainingSize #-} remainingSize WriteBuffer{..} = do@@ -599,6 +611,10 @@ old <- readIORef oldoffset cur <- readIORef offset return $ cur `minusPtr` old+ {-# INLINE goBack #-}+ goBack WriteBuffer{..} = do+ old <- readIORef oldoffset+ writeIORef offset old instance Readable ReadBuffer where {-# INLINE read8 #-}@@ -615,6 +631,8 @@ save (ReadBuffer w) = save w {-# INLINE savingSize #-} savingSize (ReadBuffer w) = savingSize w+ {-# INLINE goBack #-}+ goBack (ReadBuffer w) = goBack w ----------------------------------------------------------------
network-byte-order.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: network-byte-order-version: 0.1.4.0+version: 0.1.5 synopsis: Network byte order utilities description: Peek and poke functions for network byte order. license: BSD3