You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Use a more intuitive demand-driven interface for Reader::read(), where the caller requests a number of bytes and each implementation fills up a user-supplied buffer with that number of bytes (or less, if not enough bytes are available).
File-based Reader subclasses no longer use a byteme-level buffer, as read() just fills a user-supplied buffer. The buffer_size option now refers to the file handle's internal buffers, e.g., via std::setvbuf() or gzbuffer().
Renamed PerByte to BufferedReader as the latter is more appropriate. This now accepts a buffer size in the constructor, representing the trade-off between speed and memory usage. Also removed advance_and_extract() to encourage migration to extract().
Added the BufferedWriter class to buffer calls to Writer::write(), for improved efficiency with many small writes.
Added a dependency on sanisizer to protect against integer overflows.
Removed the Some*Reader classes as it is trivial for callers to switch between Writer instances. Also exported the is_gzip and is_zlib utilities to facilitate auto-detection of the compression mode.
Encode Zlib compression modes in an enum rather than requiring magical numbers.