cereal-enumerator 0.3 → 0.3.1
raw patch · 2 files changed
+11/−11 lines, 2 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Data.Serialize.Get.Enumerator: data ParseError
+ Data.Serialize.Get.Enumerator: newtype ParseError
Files
- Data/Serialize/Get/Enumerator.hs +10/−10
- cereal-enumerator.cabal +1/−1
Data/Serialize/Get/Enumerator.hs view
@@ -13,16 +13,17 @@ import Data.Enumerator import Data.ByteString as BS -data ParseError = ParseError String- deriving (Show, Typeable)+newtype ParseError = ParseError String+ deriving (Show, Typeable) instance Exception ParseError --- | Convert a 'Get' to an 'Iteratee'. The resulting 'Iteratee' emits a--- 'ParseError' on failure.+-- | Convert a 'Get' to an 'Iteratee'. The resulting 'Iteratee' may fail with a+-- 'ParseError'. iterGet :: Monad m => Get a -> Iteratee ByteString m a iterGet = continue . step . runGetPartial where+ step p (Chunks xs) = loop p (P.filter (not . BS.null) xs) step p EOF = case feed mempty (p mempty) of Done r _ -> yield r EOF@@ -31,12 +32,11 @@ loop p [] = continue (step p) loop p (x:xs) = case p x of- Done r bs -> yield r $ Chunks $ if BS.null bs then xs else bs:xs- Partial k -> loop k xs- Fail s -> parseError s+ Done r bs -> yield r $ Chunks $ if BS.null bs then xs else bs:xs+ Partial k -> loop k xs+ Fail s -> parseError s parseError = throwError . ParseError -feed :: ByteString -> Result a -> Result a-feed s (Partial k) = k s-feed _ r = r+ feed s (Partial k) = k s+ feed _ r = r
cereal-enumerator.cabal view
@@ -1,5 +1,5 @@ name: cereal-enumerator-version: 0.3+version: 0.3.1 synopsis: Deserialize things with cereal and enumerator license: PublicDomain author: Patrick Palka