Of course you don't have to use my library if your library already solves the same problem.

Am 25.02.2013 13:10, schrieb Alexander V Vershilov:
data Result = Error Text ByteString | NeedMore (ByteString -> Result a)
| HaveResult a

I still see an issue with this if you're receiving multiple messages in one `ByteString` chunk. A type like `HaveResult a ByteString` which also returns the leftover `ByteString` after the first result has been found could solve this, but you'd still have to re-yield this bytestring by hand and you'll possible end up with more calls to "decode" than necessary.

Of course, with json you could avoid this problem by wrapping all messages into a json-list and sending this list as one big message. But that way you lose almost all advantages of a conduit - you cannot map over those list iems, you cannot process each item one by one, you cannot fold or filter them. When using this approach I don't really see the advantage over using the plain old "connectTo/hGetContents" method?

Anyway, my library is independent of the "bytestring encoding" you want to use with it. I think it's the most general solution and avoids having to re-implement the same solution for each and every "protocol design" over and over again.

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to