It was purely just for demonstration. I did update the code with a few more comments, but the enumerator package may not be the easiest thing to grok. You might try putting up your current code and someone might be able to recommend a better or easier approach.

If the git pack headers have lengths in them, you could do something as simple as calling hSeek to move a file handle to the next header and start your decoding over again.

On Wed, Jul 20, 2011 at 10:24 PM, rahul <gopinath@eecs.oregonstate.edu> wrote:
Hi Nathan,
   Thank you very for the solution, since I am somewhat new to haskell, I
am taking some time to digest it :). But it seems that you are using
header -> streamLength to find the length of a single entry. However this
info is not present in the protocol I am parsing (git server pack files)

Have I understood your code correctly?

| > Unfortunately the binary protocol itself is external, so can't use a
| > different
| > type of compression
| >
|
| Perhaps something like this would work: https://gist.github.com/1096039
|
| I didn't test to make sure it works, but you could probably hack together a
| working solution using Data.Enumerator.Binary.isolate and the zlib-enum
| package.
|
| -n
---~*~---