From: Bjorn Reese (breese_at_[hidden])
Date: 2020-09-22 13:45:28


On 2020-09-22 15:17, Peter Dimov via Boost wrote:

> This still doesn't make one approach a superset of the other though. You
> can feed Boost.JSON's push parser incrementally. A pull parser, being a
> pull one, reverses the flow of control and asks you (its stream) for
> data when you pull from it. Yes, it makes things like the above
> possible, but I don't think it entirely supersedes pull parsers.
>
> I remember this being brought up before, so you may have a solution for
> the incremental case. A pull parser could f.ex. return token::need_input
> or something like that when it's starved, like a nonblocking socket.
> There'll still be a disconnect between its buffer size and the amount of
> incoming data though, unless I'm missing something.

https://github.com/breese/trial.protocol/tree/develop/example/json/chunked_push_parser

The current limitation is that the buffer must be large enough to hold
the largest string or number.