On Thu, Jul 29, 2010 at 6:15 AM, Duncan Coutts <duncan.cou...@googlemail.com > wrote:
> > > No idea what WrappedByteString is. > WrappedByteString is a newtype wrapper around ByteString that has a phantom type. This allows instances of to be written such that ByteString can be used with the iteratee library. You can see the source here if you're interested: http://hackage.haskell.org/packages/archive/iteratee/0.3.5/doc/html/src/Data-Iteratee-WrappedByteString.html > > It would look like attoparsec's resumable parser: > > data Result a = Fail !ByteString > | Partial (ByteString -> Result a) > | Done !ByteString a > > runGet :: Get a -> ByteString -> Result a > > Point is you feed it strict bytestring chunks. Then decoding a lazy > bytestring can be implemented on top easily, as can decoding a sequence > lazily. > Like attoparsec you'll probably want to write some other utility functions for working with Results. Attoparsec defines feed, parseWith, maybeResult, and eitherResult. I think you'll want something similar here. > I imagine you could fairly easily interface it with iteratee too. > Yes that should be easy given the above API. See for example the attoparsec-iteratee package. Once that work is done how will binary differ from cereal? How will I know which one to pick? Thanks, Jason
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe