Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Introduce:
std.io.GenericPeeker
andstd.io.AnyPeeker
, interfaces to a peekable stream.std.io.BufferedReader
std.io.FixedBufferStream
This is intended to be a simple, well-tested, good-enough solution that still provides a rich API and fits well with the existing I/O APIs until they get the rewrite they deserve. It resolves the main issue of
PeekStream
: its redundancy withBufferedReader
, as well as doing more thanPeekStream
used to provide by supporting similar operations to theReader
s and being more flexible by not requiring a buffer and forgoing theungetc
/putBack
-style API.zig/lib/std/io.zig
Lines 373 to 389 in 513b44e
resolve #4501
previously: #19310 #16114 #4878 #4505
related: #19297